Sha256: 56cb5c6abcd9fd5c82c0ac0c96d8239888d5c98291672b322c3e2ef0b58348b8

Contents?: true

Size: 937 Bytes

Versions: 7

Compression:

Stored size: 937 Bytes

Contents

require 'RMagick'

module LinkThumbnailer

  class ImgParser

    def initialize(fetcher, img_url_filter)
      @fetcher = fetcher
      @img_url_filters = [*img_url_filter]
    end

    def parse(img_urls)
      @img_url_filters.each do |filter|
        img_urls.delete_if { |i| filter.reject?(i) }
      end

      imgs = []
      count = 0
      img_urls.each { |i|
        break if count >= LinkThumbnailer.configuration.limit
        img = parse_one(i)
        img.extend LinkThumbnailer::ImgComparator
        imgs << img
        count += 1
      }

      imgs.sort!

      imgs.first(LinkThumbnailer.configuration.top)
    end

    def parse_one(img_url)
      begin
        img_data = @fetcher.fetch(img_url)
        img = Magick::ImageList.new.from_blob(img_data).extend(
          LinkThumbnailer::WebImage
        )
        img.source_url = img_url
        img
      rescue Exception
        nil
      end
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
link_thumbnailer-1.0.3 lib/link_thumbnailer/img_parser.rb
link_thumbnailer-1.0.2 lib/link_thumbnailer/img_parser.rb
link_thumbnailer-1.0.0 lib/link_thumbnailer/img_parser.rb
link_thumbnailer-0.0.6 lib/link_thumbnailer/img_parser.rb
link_thumbnailer-0.0.5 lib/link_thumbnailer/img_parser.rb
link_thumbnailer-0.0.4 lib/link_thumbnailer/img_parser.rb
link_thumbnailer-0.0.3 lib/link_thumbnailer/img_parser.rb