24hours

NISHI Takao <zophos@koka-in.org>
Last-update: 2004/12/5

What's 24hours

24hoursはRSS(0.9/1.0)およびHTMLを取得,解析し,新着情報を配信するためのツール群です。
取得したRSS/HTMLを解析し,新着情報を1件ずつ,もしくはサイト毎にまとめてメールで配信することができます。

screen shot screen shot
WanderlustでのRSS受信風景 gmailでのRSS受信風景

動作条件

ダウンロード

24hoursはhttp://www.koka-in.org/%7Ezophos/lib/24hours/pool/から入手できます。

現在の最新版は24hours-0.12.0.tar.gzです。

0.12.0よりhttp-access2は不要になりました。net/httpsがインストールされていればHTTPSのアクセスが可能です。(変更履歴)

インストール方法

  1. 適当なディレクトリにアーカイブを展開後,dot.24hoursrcファイルを.24hoursrcとリネームし,配信先メールアドレスや取得したいサイトを編集してください。
    設定ファイルの書式はdot.24hoursrcのコメントを参照してください。
    $ cp dot.24hoursrc .24hoursrc
    $ vi .24hoursrc
    
    取得先サイトをopmlからインポートしたい場合には,opml2confコマンドを使用してください。
    $ ./opml2conf some.opml >> .24hoursrc
    
  2. 24hoursを-uオプションをつけて実行しキャッシュの初期化を行ってください。
    キャッシュはアーカイブを展開したディレクトリの下のcacheディレクトリ内に作成されます。
    (-uオプションをつけずに24hoursを実行すると,取得したすべてのRSSについてメールを送信します。)
    $ ./24hours -u
    
  3. crontabを編集し,任意の間隔で24hoursが実行されるようにしてください。
    ただし,過剰アクセスを防ぐため,15分未満の間隔では新規アクセスを行いません。
    ex) 毎正時および30分に情報を取得する場合
    0,30 * * * * (cd /SOME/WHERE/INSTALLED/DIR;./24hours)
    

コマンド

0.10.0より,24hpostman.rbは24hoursに,convfromopml.rbはopml2confにファイル名をそれぞれ変更し,mk24hdb.rbコマンドは廃止しました。
また24hoursコマンドの-iオプションは廃止になり,かわりに-uオプションが新設されました。

24hours

24hoursはRSS, HTMLを取得し,更新情報をメールで送信するコマンドです。

24hoursの引数としてURLを与えた場合,そのURLはRSSファイルへのリンクと見なされます。
また,引数としてURLを与えた場合には,設定ファイルのrss/htmlエントリを無視して,与えられたURLに対してのみ処理を行います。

設定値は,設定ファイル,環境変数,コマンドラインオプションの順で評価され,最後に評価された値が有効になります。

USAGE

  24hours [options] [url ...]

オプション

-c config_file
設定ファイルのパス
-d cache_dir
キャッシュディレクトリ
 
 
-f mail_from
メール送信アドレス
-t rcpt_to
メール受信者アドレス
--smtpd host[:port]
SMTPホストおよびポート
--http_proxy uri
HTTP ProxyのURI
--ssl_root_ca pem_file
SSLルート証明書のパス
 
 
-e
メールをサイトごとにまとめて送る
-E
メールを1アイテムずつ個別に送る (デフォルト)
-u
キャッシュの更新のみを行いメールを送信しない
 
 
-h, --help
show this message and quit

環境変数

24H_CONF_FILE
設定ファイルのパス (-cオプション)
24H_CACHE_DIR
キャッシュディレクトリ (-dオプション)
24H_MAILFROM
メール送信アドレス (-fオプション)
24H_RCPTTO
メール受信者アドレス (-tオプション)
24H_SMTPD
SMTPホストおよびポート (--smtpオプション)
HTTP_PROXY
24H_HTTP_PROXY
HTTP ProxyのURI (--http_proxyオプション)
24H_SSL_ROOT_CA
SSLルート証明書のパス (--ssl_root_caオプション)
24H_SEND_EACH_CHANNEL
メールをサイトごとにまとめて送る (-eオプション)

SSL通信について

24hoursはHTTPSに対応していますが,デフォルトでは接続先サイトの証明書の確認を行わずにセッションを継続します。

通信の安全性を重視する場合には,PEM形式のSSLルート証明書をインストールし,設定ファイル,環境変数 24H_SSL_ROOT_CA あるいはコマンドラインオプション --ssl_root_ca のいずれかに証明書のパスを指定するようにしてください。
ルート証明書のパスが指定された場合には,サーバ証明書の照合に成功しない限りHTTPSのセッションは継続されません。

ルート証明書は既存のWebブラウザからエクスポートするなどで入手可能です。
たとえば,IEからPKCS #7形式でエクスポートしたルート証明書"root_ca.p7b"をPEM形式のファイル"root_ca.pem"に変換するには以下のコマンドを実行します。

$ openssl pkcs7 -inform DER -outform PEM \
  -in root_ca.p7b -out root_ca.pem -print_certs

opml2conf

opml2confはOPMLを24hours設定ファイルに変換するためのコマンドです。

変換結果は標準出力に出力されます。
出力結果をファイルに保存する必要があるときはリダイレクトしてください。

USAGE

  opml2conf opml_file

オプション

なし

環境変数

なし

配布条件

Rubyライセンスで取り扱ってください。
パッチ,要望,ビールの差入れなどは にしたかお <zophos@koka-in.org>までお願いします。

Copyright © 2004 NISHI Takao <zophos@koka-in.org> All rights reserved.
This is free software with ABSOLUTELY NO WARRANTY.

You can redistribute it and/or modify it under the terms of Ruby's licence.

Related works

当サイトのヘッドラインセンサは24hoursのライブラリを用いて構築されています。
(というかヘッドラインセンサの方がオリジナルです。)