2002-05-28(火) 7074歩 [長年日記]
■ スカパー
(雑誌は買わずに)週間の番組表が欲しいと思って、自作しようと考えていたのだが、その前にまずGoogleしたら、ちゃんとあった。危ない危ない、再発明してしまうところだったぜ。左フレームのURLのいじり方はわかったので(←悪党)、毎週一回、自動的にアクセスしてメールで送りつけるようなスクリプトをcronに仕込めばバッチリやね(現実的には2日に1回か)。
でも、一覧には番組名だけが出ていて内容までわからないから、我が愛するディスカバリーチャンネルの番組表はほぼ役に立たない。リンク先をたどって内容も埋め込むようなツールを作る必要はあるなぁ。……というわけで作った。実行すると標準出力に番組内容を含んだ1週間分の番組表が出る。本日の昼休みの成果。
#!/usr/bin/env ruby
require 'net/http'
require 'timeout'
require 'nkf'
HOST = 'www.sp3.com'
PORT = 80
TBL_PATH = '/cgi-bin/bean.pl?rf=0&bw=0&ofs=-3&ch=321'
PRG_PATH = '/EPG/program/'
# if you need proxy access, set below.
PROXY_HOST = nil
PROXY_PORT = nil
class String
def euc
NKF::nkf( '-e', self )
end
end
def get_html( path )
body = ''
timeout( 10 ) do
begin
Net::HTTP.Proxy( PROXY_HOST, PROXY_PORT ).start( HOST, PORT ) do |http|
res, = http.get( path )
body = res.body
end
rescue
end
end
body.euc
end
def get_episode( html )
html.gsub!( /<[^>]*>/, '' ).gsub( "[\n\r]", '' )
if /エピソード:([^<]*)/ =~ html then
$1
else
''
end
end
table = ''
get_html( TBL_PATH ).each do |line|
next if /^<center>/ =~ line
line.gsub!( / NOWRAP/, '' )
line.gsub!( / /, '' )
line.gsub!( /<BR>[^<]*/, '' )
if /<A HREF="([^"]*)">/ =~ line then
episode = get_episode( get_html( PRG_PATH + $1 ) )
line.sub!( /<\/TD>/, "<BR>#{episode}</TD>" )
end
table << line
end
puts NKF::nkf( '-Ze', table )
これを印刷しておけばよい。しかし、A4横で出すと4ページにもなってしまうという罠。
それにしても、こういうのこそWebサービスにして欲しいものだよな。
■ tDiary: Plugin Viewer
面白いもの作るよねぇ。
もっとも、どういう場面で便利なのか、イマイチ想像が及ばず(笑)。いや、便利そうだと思う人はいるので、それはかまわないのだけど。ところでプラグインのメタ情報、統一しないといけないね、やっぱ。
■ Meta Pad
おお、製品化するのか? ちょっと期待。これ、見方によっては「CPU付きディスク」という、「レンズ付きフィルム」のような逆転の発想的デバイスだと思う。こういうのは好きだ。
でも、必要な「シェル」を全部揃えると、すげぇ金がかかったりするんだろうな……。
■ UTF-8対策(2)
おお。頭いいなー。それなら記録はちゃんとされるし、将来UTF-8対応ができるようになったらきちんと表示されるようにできるもんねー。ちょっと自分の日記で試してみよう。こんな感じにしてみた。
['google\..*?[io]e=(utf|UTF)8.*', 'google検索(???)']
■ スカパー(2)
53行目、それはソースを引用するときに「\」が消えてしまったのであります。とほほ。直しておきました。
ディスカバリーチャンネルのTime Tableは、PDFですよね。ポータビリティがHTMLより劣るので、個人的には採用したくないな、ということで上のようなスクリプトになったのです。HTMLにしておいてインターネット上に置いておけば、どこからでも見られるし。もしかすると他のチャンネルにも使えるかも知れないし(←これがメインの理由かな)。それに、再放送の時は内容が省略してあったりして、あのPDFはちょっとイマイチ。
だいたい、うちのLinux環境、満足にPDFが表示できないじゃん! ……と思っていたんだけど、IRCでtakahataさめからAsumiにAcrobat Readerを入れる方法を教わったので、入れてみたらなかなかきれい。Maryの時は見られたもんじゃなかった記憶があるんだけど、ずいぶん良くなったものだ(単にフォントの入れ忘れかも知れない)。
ちなみにHEADからacrobat-reader-4.05-4k.nosrc.rpmとacrobat-reader-jpnfont-386-6k.nosrc.rpmを持ってきてビルドするだけ。
スカパー用のスクリプトいいですね。利用させてもらいます。53行目ですが</TD>にマッチさせるのなら、line.sub!( %r!</TD>!, "<BR>#{episode}</TD>" )とかですかね?
ディスカバリーチャンネルから Time Table 落とせばよいのでは?といってみるテスト
文字化けしていても、リファラ内容が見えた方がいいので、私もその設定を追加しました。
一部文字化けしますが、それでもいいかんじです(^^
実はこっそり、AcrobatReader-5.05が出てるらしいっす。
http://www.ruby-lang.org/~eban/diary/200205b.html#200205202
spec ファイルの書き換えで行けるかな。
5.05は4用のSPECではいけないらしいっす。じきに出るでしょうけど。
確かに見にくいですよね.このチャンネルは1ヶ月まじめに見ると2ヶ月は見なくても大丈夫なのは私だけ?ワイルドディスカバリーはおすすめですね.
acrobat-reader-5.0.5 HEAD用に作ってcommitしたんですけど
jpnfontにゴシックフォントが入ってなくてゴシックが表示でき無いという罠…
あとから4.05用のjpnfontを突っ込めばいいのですがね
そうらしいっすね。いろいろ大変だなぁ