このコミットが含まれているのは:
2026-07-11 21:45:53 +09:00
コミット 08bf92ff79
7個のファイルの変更276行の追加39行の削除
+15 -2
ファイルの表示
@@ -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