トップ 最新

ただのにっき

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はちょっとイマイチ。

PDF

だいたい、うちのLinux環境、満足にPDFが表示できないじゃん! ……と思っていたんだけど、IRCでtakahataさめからAsumiにAcrobat Readerを入れる方法を教わったので、入れてみたらなかなかきれい。Maryの時は見られたもんじゃなかった記憶があるんだけど、ずいぶん良くなったものだ(単にフォントの入れ忘れかも知れない)。

ちなみにHEADからacrobat-reader-4.05-4k.nosrc.rpmとacrobat-reader-jpnfont-386-6k.nosrc.rpmを持ってきてビルドするだけ。