あまねアンテナ 0.4
手動のため不定期更新CHU!
Last-Modified: Mon, 02 Feb 2009 23:12:20 JST
- 2004/05/18 08:56 JST (M) なっちゃんの風 夏樹さん
- 2004/05/18 07:38 JST (H) 駄目日誌Hyper いちやなぎさん
- 2004/05/18 03:24 JST (H) NavyFoxの日記 NavyFoxさん
- 2004/05/18 01:31 JST (H) さかにゃ日記 おさかなさん
- 2004/05/18 00:42 JST (G) KAZの日記 KAZさん
- 2004/05/17 22:04 JST (G) さぼり日記ensemble もにょさん
- 2004/05/15 23:00 JST (H) 永遠日記 天野優
- 2004/05/10 09:11 JST (G) 気まま日記 たいら〜さん
- 2003/08/19 01:16 JST (H) いけもの日記 いけもさん
- 2003/06/30 23:01 JST (H) かにゃおの日記 船雄さん
- 2002/10/15 22:48 JST (G) Web Diary 4.0 Windstormさん
(H): HEADリクエストで取得
(G): GETリクエストを行ない、METAタグのLast-Modifiedより取得
(M): ファイル内容が変更されています
(Sy): Sylphideより取得
(鯖): 日記鯖より取得
あまねアンテナとは
私が最近 IRCで使っている nickname が AmaneAi なので、
あまねアンテナという名前がついています。
決して、橘天音の
ことではありませんので悪しからず:-)
あまねアンテナについての連絡先
あまねアンテナ作成日記
ぐは、さっき segmentation faltで落ちた。regexec(3)の内部で落ちたのか…。
あまねアンテナの更新状況
- ローカルファイルの更新時刻を取得できるようにした
- LIRS,DI形式のファイルを読めるようになった。
ただし、\,を処理しない
(strsep(3)してるだけ)ので \, があるとちょっとマズい。
- METAタグでのLast-Modified指定を取得できるようにした。
といっても、いきなり日本語で「11月5日 日曜日…」のように書かれてるとか、
変な書式で書かれている日付では取得できません。
- なっちゃんの風が更新されてないのにコロコロMD5値が変わるので、
どうしてかなぁと思ったら、アクセスカウンターくわ…。
あまねアンテナの動きかた
- REMOTE指定してあるアンテナからLIRS,DI形式のファイルをGETする
- REMOTE取得を指定してあるサイトの場合は、そこから更新時刻を得る
- REMOTE取得が出来ないサイトについては、直接アクセスを試みる
- If-Modified-Since付きで HEADリクエストを送る
- 304 Not Modifiedなら更新されていないと判断
- Last-Modifiedがあるなら更新されているか比較する
- Last-Modifiedがなければ、GETして <meta http-equiv="Last-Modified" ...> を探す
- どうしてもLast-Modifiedが見つからなければ MD5値を計算し、前回と比較する
- テンポラリファイルに書きこみ
- リスト分の情報取得が終わったら HTML生成をする
- malloc()したあとにfree()しない:-)
つーか、リストを辿って全部free()するのは面倒。
あまねアンテナの限界
- RFC2616は一通り読んだが間違った実装していないかどうか分からない
変なリクエストしてるゾ!という報告はありましたら是非ください
- C言語で書かれているためいろいろな意味で面倒くさい
- 設定ファイルは EUC。改行コードは LF でないといけない
- 設定ファイルで , を使えない
URLで必要なときは %2c、その他で必要なら , としてください
あまねアンテナのバグ
- CTRL+C などで中止すると、テンポラリファイルが残る
rm tempantenna* などで削除してください
あまねアンテナのTODO
- 複数同時接続に対応する
- Basic認証くらいは対応する
あまねアンテナでやってみたいこと
- ファイル中の文章を解析して更新日時の取得をやってみる
- いろいろと
あまねアンテナの入手方法
いまのところ、まだソースコード配布の準備はできていませんので、
欲しいとか使ってみたいとかソースを読んでみたいとか、
そういうのはメールください。
簡単にドキュメントを書いて make dist したものを送ることを考えます。
あまねアンテナのコマンドラインオプション
- --referer=STRING
- Refererを指定する。指定なしは Refererを付けない
- --useragent=STRING
- User-Agentを指定する。指定なしは AmaneAntenna/0.4 になる。
- --proxy=SERVER[:PORT]
- proxyを経由する。
- --sort
- 最新更新日時順にソートする
- --output=FILE
- 指定したファイルにHTMLを出力。指定なしは標準出力になる
- --print-only
- 新規に更新情報の取得は行なわず、取得済みの更新情報を元にHTMLにして出力