いろいろ
Seize the day.
2007-02-10 [長年日記]
■ [blog] 「複数 URL の livedoor クリップ件数の合計」を表示する
先日,"API を用いて「複数 URL のはてなブックマーク件数の合計」を表示する tDiary 用 Ruby スクリプト" [2007-01-28] という記事を書いたんだけど,今度はこれを livedoor クリップ用に拡張してみる.はてなブックマークと同様,livedoor クリップにも API が用意されている. だいたいはてブ API と似ているので,Ruby を全く知らない自分でも見よう見真似でスクリプトが書けた.proxy の動作が良くわかんなかったので(激ぉ,使ってないけどいいかな (というか Ruby の XMLRPC::Client の仕様ってどのへん見れば載ってるんですかね.探したけど見当たらない).以下の内容を livedoor_clip_counter.rb として tDiary のトップページに置く.
#!/usr/bin/ruby
require 'xmlrpc/client'
require 'timeout'
class LivedoorClipCounter
def initialize
@client = XMLRPC::Client.new2('http://rpc.clip.livedoor.com/count')
end
def count urls
begin
@client.call('clip.getCount', *urls)
rescue XMLRPC::FaultException => e
e.faultString
rescue TimeoutError => e
end
end
end
if __FILE__ == $0
if ARGV.size != 1
print "usage: #{__FILE__} urls\n"
exit
else
result = LivedoorClipCounter.new.count(*ARGV)
result.each do |url, count|
puts "#{url} #{count}"
end
end
end
はてブの時と同様,コマンドラインからも使えるようになっている.また相変わらず Timeout::Error まわりは保留(激ぉ [2007-02-03]で,permalink.rb 内で全く同様に
require 'livedoor_clip_counter'した上で,
lcc = 0
resl = LivedoorClipCounter.new.count( urls )
resl.each do |url, countl|
lcc += countl
end
で lcc に件数を入れ,
<a href="http://b.hatena.ne.jp/entry/#{pml}"><img src="http://image.clip.livedoor.com/img/users/medium/#{'%05d' % lcc}.png" style="border: none;" alt="livedoor クリップ数" title="livedoor クリップ数" align="absmiddle" /></a>
で表示.ついでに del.ici.ous もやろうかと思ったんだけど,API がなくて JSON の扱いがとても面倒そうだったのでやめてアイコンだけ表示することにした(ぉ.
さらについでに,以下のサイトにある JavaScript を利用して,tDiary 以外のコンテンツに対してもソーシャルブックマーク数を表示させることにした.こちらは JSON を自前で処理して del.ici.ous のブックマーク数も表示できるようになっている. ただし,この JavaScript では del.ici.ous 用の件数を画像でなくて文字列で表示し,さらにそこに下線を引いているため,うちのサイトで表示させるとリンク用の下線と 2 重になってしまい,見苦しい (上記の日経 BP や著者のサイトではもともとリンクに下線を引いていないので問題ない).なので,CSS で下線なしリンク用のクラス a.noline を新たに定義し,JavaScript 内でリンクを発行する際に noline 属性を与える必要があった.
a.noline{ text-decoration:none; }
var delicious_html = '<a href="http://del.icio.us/url/?url='+encurl+'"'+
' title="del.icio.us" class="noline">'+
'<img src="'+DELICIOUS_ICON+'" width="14" height="14" border="0"'+
' style="vertical-align:middle; margin-right:2px;">'+
'<span id="delicious_count_'+encurl+'"'+
' style="font-family:Verdana,Arial,Helvetica;'+
' font-size:10px; vertical-align:middle;'+
' color:#FF6563; background:#FFF0F0;'+
' font-weight:bold; text-decoration:underline;"></span></a> ';
[ ツッコミ | permalink | trackback ]
[TrackBack URL: http://nao.s164.xrea.com/td/tb.rb/20070210]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]
本日のリンク元
その他のリンク元
検索
- キーワード不明 ×6 / a noline ×2 / ソーシャルブックマーク数 表示 ×2 / livedoor クリップ数 合計 ×2 / livedoor クリップ 合計 ×2 / del.ici.ous API ×1 / a.noline ×1 / livedoor クリップ api ×1 / http://rpc.clip.livedoor.com/count/ ×1 / del .icio.us ブックマーク数 合計 ×1 / livedoorクリップ 合計 ×1 / livedoor Count API 画像 ×1 / css background-image 複数URL ×1 / livedoor api ruby require ×1 / clip.livedoor.com/count ×1 / javascript 列 件数 表示 ×1 / livedoorクリップに追加 ×1 / rpc.clip.livedoor.com/count 40 ×1 / del.icio.us 件数 画像 javascript ×1 / XML_RPC ライブドアクリップ ×1 / ruby timeout xmlrpc ×1 / Ruby javascript内でRubyコマンド ×1 / クリップ件数取得 javascript ×1 / livedoor クリップ件数取得 API JavaScript ×1 / livedoor clip 件数 ×1 / getCount del.icio.us API ×1 / クリップ件数 JSON ×1 / クリップ件数 合計 ×1 / Ruby Livedoor クリップ API ×1 / xml rpc livedoor clip ×1 / noline proxy ×1 / matlab noline ×1 / javascript 合計を表示 ×1 / pukiwiki article 件数 ×1 / livedoor クリップ ブログ 合計 ×1 / 件数の合計 ×1 / ruby xml-rpc livedoorクリップ ×1 / livedoor ブックマーク数 API ×1 / PML LCC ×1 / del.ici.ous ×1 / Java Script 下線 noline ×1
以下の広告はサーバによって自動的に挿入されています.
Copyright © 2004-2006, nao. All rights reserved.





