«前の日記(2004-01-27 (火)) 最新 次の日記(2004-01-29 (木))» 編集
にっき
Google
2003|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|10|12|
2015|01|12|
2016|01|12|
2017|01|12|
2018|01|

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"%>

_ 通信の“巨悪”NTTを正式に分割すべき−−ソフトバンク孫社長がBB推進協議会で熱弁

この人、ゴネてるところしか見たことないんですが・・・。 第一、Yahoo!BB だって、分割に値するほど独占的だと思います。

_ カレー丼の味

うを、味変わってるのか。最初の頃、随分甘いという話だったので敬遠していたのだが、スパイシーになったのなら一度食べてみてもいいかな。

_ 今日のアニメ

東京ミュウミュウ#34
れたすが作った人形が人形作家の上村綾乃にパクられる。
ダーティペアFLASH2#2
全てのホテルが満室なので不気味な女子寮に宿泊する。
ドラゴンボールZ#102
ナメック星消滅まであと1分。戦いはまだ終わらない。
ドラゴンボール#153
最終回。火喰い鳥の卵の殻で八卦炉の底に開いた穴をふさぐ。
シティーハンター2#38
香が盗み出したものの中に大河内の裏帳簿が混じっていた。
藍より青し〜縁〜#8
ちか・夏樹・千鶴の3人が水泳大会のリレーに出場することに。
本日のツッコミ(全2件) [ツッコミを入れる]
_ ただただし (2004-01-28 (水) 10:33)

amazon.rbと同じメソッド名にしておくと、amazonからの乗り換えが楽です

_ えろぺお (2004-01-28 (水) 11:59)

amazon.rb とは表示形式や内容がが違うので、完全なリプレースは出来ないと思い、違う名前にしたのですが・・・


«前の日記(2004-01-27 (火)) 最新 次の日記(2004-01-29 (木))» 編集