Programming_getnews
ニュース取得システムのページ
MSN/NHKのニュースと電車の運行状況を取得して表示するプログラム。研究室の本棚の上の入り口よりのディスプレイに出力している。本体は研究室のサーバーのinternal_onlyにある。フィードの取得はPerlのcgi、表示にはAjaxを使用している。
構成
- 使用言語
- Perl
- JavaScript
- Html
- 構成ファイル
- feed.css
- feed.js
- feedProxy.cgi
- getTrainInfo.cgi
- index.html
- ObjTree.js
- prototype.js
- その他画像ファイル
運用
- サーバー側
- 表示側
研究室サーバの/internal_only/trafic_info/index.html にブラウザでアクセスして放っておく。
改造
個々の動作
feedProxy.cgi と getTrainInfo.cgi が外部サイトのフィードを取得し、feed.js が定期的にこの2つのcgiから取得情報を読み取って画面を更新する。
feed.css
feed.js
中核的な存在。パース/描画の呼び出しを定期的に行っている。フィード自体の取得とパースはそれぞれfeedProxy.cgiとgetTrainInfo.cgiが担当する。定期的にページを切り替えるスレッドが動いている。
- 設定用パラメータ
| 変数名 | 用途 |
|---|---|
| page_switch_interval | ページの切り替え周期 |
| channel_switch_interval | 取得してあるフィードの中から、表示する情報を切り替える周期。 |
| reload_interval | 外部情報の再取得を行う周期。 |
| area height_max | 名前のとおり。 |
- 主な関数
- load_feed
フィードの読み込み、ページ切り替えスレッドの生成を行っている。channel_switch_intervalごとに呼ばれている。読み込みはローカルの各種cgiに対して行っており、外部サイトのフィードの取得を行っている訳ではない。
- reload_site
外部サイトのフィードの再取得を行っていると思われる。reload_intervalごとに呼ばれる。
- switch_panel
定期的に呼び出される描画用情報の更新スレッド。画面に表示するパネルの情報を設定する。各表示要素(筆者がjsを理解しきっていないので、ここは補足求む)に非表示ならnone,表示するならblock属性を割り当てる。
feedProxy.cgi
MSN,NHKからニュース情報を取得するcgi。同時にfeed.jsに取得したxmlを渡す役割も兼ねている。なぜか接続の際、ユーザエージェントをPS3にして接続している。
getTrainInfo.cgi
電車情報を取得するcgi。feedProxy.cgiと同様に、取得したxmlをfeed.jsに渡す役割を兼ねている。
index.html
ObjTree.js
?
prototype.js
Ajaxのライブラリ。
Copyright(C) by 芝浦工業大学 工学部通信工学科, 森野研究室. All Rights Reserved.