Fix page caching
This commit is contained in:
@@ -20,7 +20,7 @@ module Adamantium
|
|||||||
|
|
||||||
if bookmark[:cache]
|
if bookmark[:cache]
|
||||||
page_cacher.call(url: created_bookmark.url) do |content|
|
page_cacher.call(url: created_bookmark.url) do |content|
|
||||||
post_repo.update(id: created_bookmark.id, cached_content: content)
|
post_repo.update(created_bookmark.id, cached_content: content)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@@ -12,6 +12,7 @@ module Adamantium
|
|||||||
required(:post_type).value(included_in?: %w[bookmark])
|
required(:post_type).value(included_in?: %w[bookmark])
|
||||||
required(:syndicate_to).array(:string)
|
required(:syndicate_to).array(:string)
|
||||||
required(:photos).array(:hash)
|
required(:photos).array(:hash)
|
||||||
|
required(:cache).filled(:bool)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -4,7 +4,7 @@ require "down"
|
|||||||
module Adamantium
|
module Adamantium
|
||||||
class PageCacher
|
class PageCacher
|
||||||
def call(url:, &block)
|
def call(url:, &block)
|
||||||
tempfile = Down.download(bookmark.url)
|
tempfile = Down.download(url)
|
||||||
content = Readability::Document.new(tempfile.read, tags: %w[div section header p h1 h2 h3 h4 h5 h6 ol ul li table td tr thead tbody a code pre], attributes: %w[href]).content
|
content = Readability::Document.new(tempfile.read, tags: %w[div section header p h1 h2 h3 h4 h5 h6 ol ul li table td tr thead tbody a code pre], attributes: %w[href]).content
|
||||||
yield content
|
yield content
|
||||||
end
|
end
|
||||||
|
@@ -49,13 +49,15 @@ RSpec.describe "Post creation", :db, :requests do
|
|||||||
h: "entry",
|
h: "entry",
|
||||||
"bookmark-of": "http://example.com",
|
"bookmark-of": "http://example.com",
|
||||||
name: "Name",
|
name: "Name",
|
||||||
content: "Content of theh post"
|
content: "Content of the post",
|
||||||
|
cache: "true"
|
||||||
}
|
}
|
||||||
|
|
||||||
post "/micropub", params
|
post "/micropub", params
|
||||||
|
|
||||||
expect(last_response).to be_successful
|
expect(last_response).to be_successful
|
||||||
expect(post_repo.bookmark_listing.count).to eq 1
|
expect(post_repo.bookmark_listing.count).to eq 1
|
||||||
|
expect(post_repo.bookmark_listing.last.cached_content).to_not eq nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user