# $Id: bookstore.rb,v 1.9 2003/01/22 13:03:25 not Exp $
# いじりました。by ippo 2003.2.7-2003.2.14
=begin
usage:
(ISBN4-04-873259-5) とか書いとくと各オンライン書店へのリンクに変換
アソシエイト・プログラムに参加している場合は ndiary.conf に以下の行を追加
もちろん自分の ID に直して。
# bk1
BOOKSTORE_BK1_ID = 'p-not00114'
# amazon
BOOKSTORE_AMAZON_ID = 'notsfragmen-22'
# review-link
REVIEWER_CODE = '一歩'
REVIEWLINK_LINK = true #書店リンクのうちに書評リンクも含める
松下さん(http://www.alles.or.jp/~akihisa/)のオンライン書店へのリンクを
参考に作成。
その後、細井さん(http://www.fan.gr.jp/~hosoi/diary/diary.html)による洋書
のリンクを追加。
その後、書評リンク用に一歩がいじる。
=end
class Filter
BOOKSTORE = Regexp::compile(/[\((]ISBN(\d-[\d-]{9}-\w)[\))]/)
# BOOKSTORE = Regexp::compile(/[\((]ISBN[:|:]?\s?(\d-[\d-]{9}[-]?[\w]?)[\))]/) #表記方法によってはこちら
def bookstore(str, type)
bk1_id = @diary.config['BOOKSTORE_BK1_ID'].to_s
amazon_id = @diary.config['BOOKSTORE_AMAZON_ID'].to_s
reviewer_code = @diary.config['REVIEWER_CODE'].to_s
flag_reviewlinklink = @diary.config['REVIEWLINK_LINK']
flag_rl_url = @diary.config['PARAGRAPH_ANCHOR']
reviewlink_url = 'http://ippo.s5.xrea.com/x/rl/index.cgi'
=begin
#あるいは、ndiary.confを触るのが好みでない場合、ここで直接定義して下さい。
bk1_id = 'p-ippo00145'
amazon_id = 'ipposjunkbox-22'
reviewer_code = '一歩'
flag_reviewlinklink = true
=end
bk1_id = 'aid=' + bk1_id + '&' unless bk1_id.empty?
case type
when :P, :UL, :DL
str.gsub!(BOOKSTORE){
isbn = $1
isbn2 = isbn.delete('-')
rl_str = []
rl_str << "ISBN#{isbn}"
rl_str << "reviewer=#{reviewer_code}" unless reviewer_code.empty?
rl_str = ''
if isbn2 =~ /^4/
t = rl_str
t << '【 '
t << 'bk1 / '
t << 'amazon / '
t << 'Yahoo! / '
t << '旭屋 / '
t << 'Jbook / '
t << '紀伊國屋 / '
t << '楽天 / '
t << 'skysoft '
t << "/ rl " if flag_reviewlinklink
t << '】 '
elsif isbn2 =~ /^0/
t = rl_str
t << '【 '
t << 'skysoft / '
t << 'amazon.co.jp / '
t << 'amazon.com / '
t << 'Barnes & Noble / '
t << 'A1Books / '
t << 'Powells.com / '
t << 'Borders / '
t << '紀伊國屋 / '
t << '丸善 '
t << "/ rl " if flag_reviewlinklink
t << '】 '
elsif isbn2~ /^1/
t = rl_str
t << '【 '
t << 'amazon.co.uk / '
t << 'The Internet Bookshop / '
t << 'bol '
t << "/ rl " if flag_reviewlinklink
t << '】 '
end
}
when :AFTER_P, :AFTER_UL, :AFTER_DL
if flag_rl_url
str.gsub!(//) {
tagcode = $1
if str =~ //
urlcode = $1
tagcode += ':url=' + urlcode
end
t = ""
}
end
end
end
end