Sha256: 87fbd2a17b1667d305293e79c1318176fc4c4a809af6f63c0600a099bded1756

Contents?: true

Size: 969 Bytes

Versions: 18

Compression:

Stored size: 969 Bytes

Contents

class Bookmark
  def self.get_title_from_url(url)
    return if url.blank?
    return unless Addressable::URI.parse(url).host
    if manifestation_id = url.bookmarkable_id
      manifestation = Manifestation.find(manifestation_id)
      return manifestation.original_title
    end
    unless manifestation
      normalized_url = Addressable::URI.parse(url).normalize.to_s
      doc = Nokogiri::HTML(open(normalized_url))
      # TODO: 日本語以外
      #charsets = ['iso-2022-jp', 'euc-jp', 'shift_jis', 'iso-8859-1']
      #if charsets.include?(page.charset.downcase)
        title = NKF.nkf('-w', CGI.unescapeHTML((doc.at("title").inner_text))).to_s.gsub(/\r\n|\r|\n/, '').gsub(/\s+/, ' ').strip
        if title.blank?
          title = url
        end
      #else
      #  title = (doc/"title").inner_text
      #end
      title
    end
  rescue OpenURI::HTTPError
    # TODO: 404などの場合の処理
    raise "unable to access: #{url}"
  #  nil
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
enju_purchase_request-0.1.0.pre7 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.1.0.pre6 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.1.0.pre5 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.1.0.pre4 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.1.0.pre3 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.1.0.pre2 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.1.0.pre spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.14 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.13 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.12 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.10 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.9 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.8 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.7 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.6 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.5 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.4 spec/dummy/app/models/bookmark.rb
enju_purchase_request-0.0.3 spec/dummy/app/models/bookmark.rb