Sha256: 76db2059d69524452d75cffecc05f2ea1ddc25129941b16ab24f86ccf4a3f661
Contents?: true
Size: 1.01 KB
Versions: 1
Compression:
Stored size: 1.01 KB
Contents
require 'nokogiri' require 'open-uri' module Synopsis def self.synopsis(url) doc = nil description = nil begin doc = Nokogiri::HTML(open(url)) rescue doc = nil end # Try the meta description tag first if doc doc.css('meta').each do |meta| if meta.attributes['name'] && meta.attributes['name'].value == 'description' description = meta.attributes['content'].value end end end # if that fails use bing if description.nil? || description.length == 0 begin bing_url = "http://www.bing.com/search?q=" + GI.escapeHTML(url) bing_doc = Nokogiri::HTML(open(bing_url)) description = bing_doc.css('p').first.to_s.gsub(/<\/?[^>]*>/, "") rescue description = nil end end # still failing grab the first para from the original doc if description.nil? || description.length == 0 description = doc.css('p').first.to_s.gsub(/<\/?[^>]*>/, "") end description end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
synopsis-0.0.3 | lib/synopsis.rb |