2004-01-28 (水) [長年日記]
_ 続・mt-bk1.pl
移植が簡単そうだったので、tDiary 用の bk1 プラグインを作ってみました。
表示形式や内容は mt-bk1.pl 準拠です。 また、動作には Uconv ライブラリ が必要です。
# bk1.rb require 'net/http' require 'uconv' def bk1( bibid ) aid = @conf['bk1.aid'] || '99mt-bk1' h = Hash.new cache = "#{@cache_path}/bk1" Dir::mkdir( cache ) unless File::directory?( cache ) begin item = File::readlines( "#{cache}/#{bibid}" ) raise if item.length < 2 item.each do |line| key, value = line.split( /\t/, 2 ) h[ key ] = value.strip end rescue host = 'cgi.bk1.jp' port = 80 path = "/xml.cgi?bibid=#{bibid}&aid=#{aid}" Net::HTTP.version_1_1 Net::HTTP.start( host.untaint, port.untaint ) do |http| response, = http.get( path ) buf = Uconv.u8toeuc( response.body ) buf.scan(/<([A-Z][A-Za-z]*)>([^<]*)<\/\1>/) do |tag| h[ tag[0] ] = tag[1] end if /<Details url="(.*?)">/ =~ buf then h['DetailURL'] = $1.gsub( /%26/, '&' ) end end open("#{cache}/#{bibid}","w") do |f| h.each do |key, value| f.print "#{key}\t#{value}\n" end end end basketImage = 'http://www.bk1.co.jp/images/bk1/ic-kago.gif' basket = %Q[<a href="http://www.bk1.co.jp/cgi-bin/bk1bskt.cgi?aid=#{aid}&b=#{h['BIBID'] || bibid}&n=1"><img src="#{basketImage}" border=0 vspace=1></a>] <<-HTML <span class="bk1"> <a href="#{h['DetailURL']}"> <img class="bk1" src="#{h['ImageUrlSmall']}" align="left" hspace=5 border=0> <strong>#{h['ProductName']}</strong> </a><br /> #{h['Authors']}<br /> #{h['Manufacturer']} / #{h['OurPrice']} / #{h['DateOfIssue']}<br /> #{basket} </span> HTML end
- 使い方
<%=bk1 "書誌ID"%> <%=bk1 "ISBN"%>
- 使用例
<%=bk1 "4915540707"%>
- TODO
- デフォルトのブリーダーIDは 99mt-bk1 でいいのか?
- タイムアウトした場合の処理
- プロクシ対応
- amazon.rb との互換メソッドも必要か?
_ 通信の“巨悪”NTTを正式に分割すべき−−ソフトバンク孫社長がBB推進協議会で熱弁
この人、ゴネてるところしか見たことないんですが・・・。 第一、Yahoo!BB だって、分割に値するほど独占的だと思います。
_ 今日のアニメ
- 東京ミュウミュウ#34
- れたすが作った人形が人形作家の上村綾乃にパクられる。
- ダーティペアFLASH2#2
- 全てのホテルが満室なので不気味な女子寮に宿泊する。
- ドラゴンボールZ#102
- ナメック星消滅まであと1分。戦いはまだ終わらない。
- ドラゴンボール#153
- 最終回。火喰い鳥の卵の殻で八卦炉の底に開いた穴をふさぐ。
- シティーハンター2#38
- 香が盗み出したものの中に大河内の裏帳簿が混じっていた。
- 藍より青し〜縁〜#8
- ちか・夏樹・千鶴の3人が水泳大会のリレーに出場することに。
amazon.rbと同じメソッド名にしておくと、amazonからの乗り換えが楽です
amazon.rb とは表示形式や内容がが違うので、完全なリプレースは出来ないと思い、違う名前にしたのですが・・・