HikiのFlickrプラグインを書いてみた
使い方の説明が不親切だったので書き直しました。あとバージョンアップもしたのですが、ファイルが複数になったので公開できる場所ができたら最新版を公開します。
{{ simple_flickr photo_id, [:square|:thumbnail|:small|:medium|:large|:original], [true|false] }}
引数の2つ目(size)
表示するときの画像のサイズ。デフォルト値は :medium になっている。以下のサイズが指定できる。
- :square or :s
- 画像を正方形に小さく表示(75x75)
- :thumbnail or :t
- サムネイル表示。最長の辺が100px
- :small or :m
- 最長の辺が240px
- :medium
- 最長の辺が500px
- :large or :b
- 最長の辺が1024px(オリジナルのサイズが大きい画像のみで有効)
- :original or :o
- オリジナルの画像サイズ、形式で表示。
みたいな感じで使う。まだ要望があれば機能拡張する予定。
以下ソース
require 'xmlrpc/client' require 'rexml/document' def simple_flickr photo_id, size = :medium, link_to_flickr = true api_key = @options['flickr_api_key'] server = XMLRPC::Client.new('api.flickr.com', '/services/xmlrpc') res = server.call('flickr.photos.getInfo', :api_key => api_key, :photo_id => photo_id.to_s) xml = REXML::Document.new(res) size = size.to_sym sizes = { :square => '_s', :s => '_s', :thumbnail => '_t', :t => '_t', :small => '_m', :m => '_m', :medium => '', :large => '_b', :b => '_b', :original => '_o', :o => '_o' } a = xml.root.attributes a_tag = '<a href="' + xml.elements['photo/urls/url'].text + '" target="_blank">' img_tag = %Q(<img src="http://farm#{a['farm']}.static.flickr.com/#{a['server']}/#{a['id']}_#{a['secret']}#{sizes[size]}.jpg">) if link_to_flickr a_tag + img_tag + '</a>' else img_tag end end