Sha256: b2cfdca1aebdb8944ff1656f94801cc4bd10fbacab45cf8b1e26cdb02e68fb4f

Contents?: true

Size: 932 Bytes

Versions: 7

Compression:

Stored size: 932 Bytes

Contents

require 'cgi'

require 'murlsh'

module Murlsh

  # Get thumbnail for image urls if not already set.
  class AddPre65ImgThumb < Plugin

    @hook = 'add_pre'

    StorageDir = File.join(File.dirname(__FILE__), '..', 'public', 'img',
      'thumb')

    ImageContentType = %w{
      image/gif
      image/jpeg
      image/png
      }

    def self.run(url, config)
      if not url.thumbnail_url and url.content_type and
        ImageContentType.include?(url.content_type)
        Murlsh::failproof do
          thumb_storage = Murlsh::ImgStore.new(StorageDir,
            :user_agent => config['user_agent'])

          stored_filename = thumb_storage.store_url(url.url) do |i|
            max_side = config.fetch('thumbnail_max_side', 90)
            i.extend(Murlsh::ImageList).resize_down!(max_side)
          end
          url.thumbnail_url = "img/thumb/#{CGI.escape(stored_filename)}"
        end
      end
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
murlsh-1.4.1 plugins/add_pre_65_img_thumb.rb
murlsh-1.4.0 plugins/add_pre_65_img_thumb.rb
murlsh-1.3.1 plugins/add_pre_65_img_thumb.rb
murlsh-1.3.0 plugins/add_pre_65_img_thumb.rb
murlsh-1.2.1 plugins/add_pre_65_img_thumb.rb
murlsh-1.2.0 plugins/add_pre_65_img_thumb.rb
murlsh-1.1.0 plugins/add_pre_65_img_thumb.rb