26 lines
672 B
Ruby
26 lines
672 B
Ruby
require "readability"
|
|
require "down"
|
|
|
|
module Admin
|
|
module Commands
|
|
module Bookmarks
|
|
class Cache
|
|
include Dry::Monads[:result]
|
|
include Deps["repos.bookmark_repo"]
|
|
|
|
def call(bookmark_id:)
|
|
bookmark = bookmark_repo.fetch(id: bookmark_id)
|
|
bookmark.url
|
|
|
|
tempfile = Down.download(bookmark.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
|
|
|
|
bookmark_repo.update(id: bookmark_id, cached_content: content)
|
|
|
|
Success()
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|