このコミットが含まれているのは:
@@ -6,9 +6,22 @@ class PostMetadataFetcher
|
||||
document = Nokogiri::HTML.parse(response.body)
|
||||
content = -> name { document.at_css("meta[property='#{ name }'], meta[name='#{ name }']")&.[]('content')&.strip.presence }
|
||||
duration = content.call('og:video:duration') || content.call('video:duration')
|
||||
published = content.call('article:published_time') || content.call('date')
|
||||
published_at = Time.zone.parse(published.to_s) if published.present?
|
||||
platform_tags = platform_tags(uri)
|
||||
{ title: metadata[:title],
|
||||
thumbnail_base: Preview::KnownSiteExtractor.thumbnail_url(uri) || metadata[:image_url],
|
||||
original_created_from: content.call('article:published_time') || content.call('date'),
|
||||
duration: duration&.to_f&.then { _1.positive? ? (_1 * 1_000).round : nil } }
|
||||
original_created_from: published_at&.iso8601,
|
||||
original_created_before: published_at && (published_at + 1.minute).iso8601,
|
||||
duration: duration&.to_f&.then { _1.positive? ? (_1 * 1_000).round : nil },
|
||||
tags: platform_tags.join(' ') }
|
||||
end
|
||||
|
||||
def self.platform_tags uri
|
||||
return ['動画', 'YouTube'] if Preview::KnownSiteExtractor.thumbnail_url(uri)
|
||||
return ['動画', 'ニコニコ'] if Preview::KnownSiteExtractor.niconico_video_id(uri)
|
||||
|
||||
[]
|
||||
end
|
||||
private_class_method :platform_tags
|
||||
end
|
||||
|
||||
新しい課題から参照
ユーザをブロックする