Sha256: 682e126f41fb2a038a07c1d6aa15905afa6a6ead81c161914df4be1702919f7d

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

require 'cgi'

require 'murlsh'

module Murlsh

  # If document has meta or link media:thumbnail use it as the thumbnail.
  class AddPre50MediaThumbnail < Plugin

    @hook = 'add_pre'

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

    def self.run(url, config)
      if not url.thumbnail_url and url.ask.doc
        url.ask.doc.xpath_search(%w{
          //meta[@rel='media:thumbnail']
          //link[@rel='media:thumbnail']
          }) do |node|
          if node and not node['href'].to_s.empty?
            Murlsh::failproof do
              thumb_storage = Murlsh::ImgStore.new(StorageDir,
                :user_agent => config['user_agent'])

              stored_filename = thumb_storage.store_url(node['href']) 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

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
murlsh-1.4.1 plugins/add_pre_50_media_thumbnail.rb
murlsh-1.4.0 plugins/add_pre_50_media_thumbnail.rb