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