diff --git a/lib/link_thumbnailer/configuration.rb b/lib/link_thumbnailer/configuration.rb index 2487f3b..a94c1ec 100644 --- a/lib/link_thumbnailer/configuration.rb +++ b/lib/link_thumbnailer/configuration.rb @@ -49,7 +49,7 @@ def initialize %r{^http://pixel\.quantserve\.com/}, %r{^http://s7\.addthis\.com/} ] - @attributes = [:title, :images, :description, :videos, :favicon, :body] + @attributes = [:title, :images, :description, :videos, :favicon, :body, :site_name] @graders = [ ->(description) { ::LinkThumbnailer::Graders::Length.new(description) }, ->(description) { ::LinkThumbnailer::Graders::HtmlAttribute.new(description, :class) }, diff --git a/lib/link_thumbnailer/models/site_name.rb b/lib/link_thumbnailer/models/site_name.rb new file mode 100644 index 0000000..1c6f95a --- /dev/null +++ b/lib/link_thumbnailer/models/site_name.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'link_thumbnailer/model' + +module LinkThumbnailer + module Models + class SiteName < ::LinkThumbnailer::Model + attr_reader :node, :text + + def initialize(node, text = nil) + @node = node + @text = sanitize(text || node.text) + end + + def to_s + text + end + end + end +end diff --git a/lib/link_thumbnailer/models/website.rb b/lib/link_thumbnailer/models/website.rb index ec77ef0..e8589bd 100644 --- a/lib/link_thumbnailer/models/website.rb +++ b/lib/link_thumbnailer/models/website.rb @@ -6,7 +6,7 @@ module LinkThumbnailer module Models class Website < ::LinkThumbnailer::Model - attr_accessor :url, :title, :description, :images, :videos, :favicon, :body + attr_accessor :url, :title, :description, :images, :videos, :favicon, :body, :site_name def initialize @images = [] @@ -42,6 +42,7 @@ def as_json(*) { url: url.to_s, favicon: favicon, + site_name: site_name, title: title, description: description, images: images.map(&:as_json), diff --git a/lib/link_thumbnailer/scraper.rb b/lib/link_thumbnailer/scraper.rb index 3c8c626..e17b528 100644 --- a/lib/link_thumbnailer/scraper.rb +++ b/lib/link_thumbnailer/scraper.rb @@ -18,6 +18,8 @@ require 'link_thumbnailer/scrapers/opengraph/favicon' require 'link_thumbnailer/scrapers/default/body' require 'link_thumbnailer/scrapers/opengraph/body' +require 'link_thumbnailer/scrapers/default/site_name' +require 'link_thumbnailer/scrapers/opengraph/site_name' module LinkThumbnailer class Scraper < ::SimpleDelegator diff --git a/lib/link_thumbnailer/scrapers/default/site_name.rb b/lib/link_thumbnailer/scrapers/default/site_name.rb new file mode 100644 index 0000000..3d97cd4 --- /dev/null +++ b/lib/link_thumbnailer/scrapers/default/site_name.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require 'link_thumbnailer/scrapers/default/base' +require 'link_thumbnailer/models/site_name' + +module LinkThumbnailer + module Scrapers + module Default + class SiteName < ::LinkThumbnailer::Scrapers::Default::Base + def value + nil + end + end + end + end +end diff --git a/lib/link_thumbnailer/scrapers/opengraph/site_name.rb b/lib/link_thumbnailer/scrapers/opengraph/site_name.rb new file mode 100644 index 0000000..b5cf866 --- /dev/null +++ b/lib/link_thumbnailer/scrapers/opengraph/site_name.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +require 'link_thumbnailer/scrapers/opengraph/base' + +module LinkThumbnailer + module Scrapers + module Opengraph + class SiteName < ::LinkThumbnailer::Scrapers::Opengraph::Base + end + end + end +end