ライブスケジュールまとめページα版まであと少し

日曜日を利用してようやくライブスケジュールのとりこみ、DBへの格納、DBから読み込み&週間スケジュールのホームページ貼り付けができてきた。

現在MacOS上で作っていて、これから玄箱上での動作確認をしなければなりません。

お世辞にも玄箱はCPUもメモリもリソースが限られるために動作が緩慢です。もっとも消費電力のことを考えると妥協せざるを得ないのかもしれないけど。

さて、今ネックなのがrubyで動作するライブラリのインストールにかかる時間。gemコマンドを使っているのだけど、これが非常に遅い。例えば先日『vpim』というライブラリをインストールしたのですが、12時間以上かかりました。WEBサーバを稼働させていたりするのでそれが影響しているのかもしれませんが、とにかく重いです。

そして今はHTMLコンテンツを解析するためのライブラリをインストール中。よって、まだ玄箱では動作確認できず。ただ、機種依存の処理はないので問題なく動作するでしょう。今度の週末くらいにはホームページのトップに1週間のジャズライブ情報がコンパクトに表示されていることでしょう。

あとは空き時間を利用してジャズバー『ソネ』のホームページもスクレープしてicalendarとDBへの出力処理を実装してしまいました。このお店もロイヤルホース同様スケジュールは手打ちなのか、はたまた使用しているツールに問題があるのかで、タグを閉じていないコンテンツとなっており、かつ一部にタグの記述に規則性がなく、納得できる出力結果になるまで手こずりました。とりあえず2月はうまく出力できているようだが、3月になったら問題が発生する可能性があります。3月分はちゃんとホームページにあがっているので、時間を作って確認しなくては。

あと備忘録がてら書いておくと、SQLite (またはSQL言語) でてこずりました。SQLiteはDBに型が一応あるのだけれども、あんまり厳密に処理してなさそうです。今回はまったのが日付。『2008-02-17』でも『2008-2-17』でもDBに格納されます。DBには要求されたそのままの形で格納されます。問題はselectで日付の範囲指定をする時に発生しました。

1週間のライブスケジュールをDBから取り出す処理を実装したのですが、SQLiteは単純に文字列でselectするようです。よって、例えば2/8~2/14までをselectするとしましょう。この場合後者のように1桁の日にちをそのまま記述する。

『2008-2-8』~『2008-2-14』これをSQL文で書いてみると以下のようになる。


select * from jazz_live
where date between ‘2008-02-08′ and ‘2008-02-14′

DB中の日付(上記だと”date”)が上記のように『2008-2-8』のように格納されていると、2/14は14日の10の桁と2/8の1の桁が比較され、2/8のほうが新しい日付と判断されてしまうみたい。これによって1件もスケジュールが取り出せないという現象に見舞われました。WEBを見てもほとんど情報がなかったんだけど常識的な話なんでしょうかね。

■参考URL
ロイヤルホースのicalendarファイル
→http://jazz-love.ddo.jp/ics/royalhorse.ics

ソネのicalendarファイル
→http://jazz-love.ddo.jp/ics/sone.ics

※早いうちにお世話になっているジャズバーを網羅したい・・・