lib/link_thumbnailer.rb in link_thumbnailer-1.0.5 vs lib/link_thumbnailer.rb in link_thumbnailer-1.0.6

- old
+ new

@@ -1,7 +1,7 @@ require 'link_thumbnailer/engine' if defined? Rails -require 'link_thumbnailer/config' +require 'link_thumbnailer/configuration' require 'link_thumbnailer/object' require 'link_thumbnailer/fetcher' require 'link_thumbnailer/doc_parser' require 'link_thumbnailer/doc' require 'link_thumbnailer/img_url_filter' @@ -22,25 +22,25 @@ attr_accessor :configuration, :object, :fetcher, :doc_parser, :img_url_filters, :img_parser def config self.configuration ||= Configuration.new( - :mandatory_attributes => %w(url title images), - :strict => true, - :redirect_limit => 3, - :blacklist_urls => [ + mandatory_attributes: %w(url title images), + strict: true, + redirect_limit: 3, + blacklist_urls: [ %r{^http://ad\.doubleclick\.net/}, %r{^http://b\.scorecardresearch\.com/}, %r{^http://pixel\.quantserve\.com/}, %r{^http://s7\.addthis\.com/} ], - :rmagick_attributes => %w(source_url mime_type colums rows filesize number_colors), - :limit => 10, - :top => 5, - :user_agent => 'linkthumbnailer', - :verify_ssl => true, - :http_timeout => 5 + rmagick_attributes: %w(source_url mime_type colums rows filesize number_colors), + limit: 10, + top: 5, + user_agent: 'linkthumbnailer', + verify_ssl: true, + http_timeout: 5 ) end def configure yield config @@ -70,20 +70,25 @@ self.img_url_filters = [LinkThumbnailer::ImgUrlFilter.new] self.img_parser = LinkThumbnailer::ImgParser.new(self.fetcher, self.img_url_filters) end def opengraph(doc) + return nil unless opengraph?(doc) self.object = LinkThumbnailer::Opengraph.parse(self.object, doc) return self.object if self.object.valid? nil end def custom(doc) - self.object[:title] = doc.title + self.object[:title] = doc.title self.object[:description] = doc.description - self.object[:images] = self.img_parser.parse(doc.img_abs_urls.dup) + self.object[:images] = self.img_parser.parse(doc.img_abs_urls.dup) return self.object if self.object.valid? nil + end + + def opengraph?(doc) + !doc.xpath('//meta[starts-with(@property, "og:") and @content]').empty? end end end