自分の好みのカスタムPlanetの構築
このソフトウェアはPythonと同じライセンス下で公開されており、Planetのホームページから入手できる。ここでは2.0リリースについて説明するが、人生にはスリルが必要だという方であれば、nightly snapshotをダウンロードすることも可能だ。Planetを使用するには、Python 2.2以降およびpython-bdbパッケージが必要である。また当然の話ではあるが、作成したPlanetページを公開するには、ApacheなどのWebサーバも用意しなければならない。
Planetソフトウェアがダウンロードできたら、/var/wwwなど任意のディレクトリに解凍する。Planetのexamplesディレクトリの中には、basicおよびfancyという2種類のデフォルトテンプレートが収録されている。basicテーマは少々時代遅れの感があり、私の知る限りこれを用いたPlanetの現役サイトは存在しないはずである。よって使うならfancyテーマということになるが、あるいは多少時間がかかってもよいならば、既存テンプレートを基に独自テーマをカスタマイズすることも可能だ。なおPlanetで用いられているテンプレートエンジンはhtmltmplであり、Planetをカスタマイズするつもりなら、関連ドキュメントを参照して頂きたい。その内容は、スタイルシートやHTMLの知識があれば、それほど難しくないはずである。
選択したテーマのディレクトリにはconfig.iniファイルが存在するはずだが、Planetの設定変更は、このファイルをカスタマイズすることで行える。カスタマイズできる項目は、1ページ中の項目数、エントリの有効日数、その他の表示用オプションである。このファイルには詳細なコメントが記入されているので、Planetの設定変更に関して大きな問題はないだろう。
低速回線で接続したホームネットワークでPlanetを運用する場合、あるいはフィード処理が頻繁にタイムアウトするような場合は、feed_timeoutの設定値を変更する必要があるかもしれない。デフォルト値は20秒だが、私の環境の場合はこのままで特に問題はなかった。
configファイルのPlanetセクションにおけるデフォルト値の指定が終了したら、次に独自のフィード情報を追加する。こうしたフィード情報は、下記の例のように、フィード用のURLと名称という構成になっている。
[https://www.linux.com/index.rss] name = Linux.com
フィードURLはブラケットで囲み、フィード名はname =
に続けて記入する必要がある。各ブロガのhackergotchiイメージをPlanetサイト上に表示させる場合、そのサイズがconfig.iniと一致しない画像ファイルについては、縦および横方向のサイズを個別に指定する必要がある。
[http://www.gnome.org/~jdub/blog/?flav=rss] name = Jeff Waugh face = jdub.png facewidth = 70 faceheight = 74
なお複数の人間が投稿しているブログを同一のRSSないしAtomフィードとして処理する場合は、ブロガー個人に対するイメージではなく、当該サイトに対するアイコンないしロゴを1つ指定しておけばいいだろう。
フィードするアイコンはoutput/imagesディレクトリに格納しておく必要があるので、例えばPlanet書庫の展開先が/var/wwwであり、examplesディレクトリにあるfancyテーマを使用する場合であれば、アイコン群の格納先は/var/www/planet-2.0/examples/output/imagesとなる。なおPlanetのロゴファイルはlogo.pngだが、このファイルについても独自のロゴに変更することが可能だ。
Planetの実行法
フィード情報の設定が終了したら、次にPlanetを起動させる必要があるが、それにはトップレベルのPlanetディレクトリで下記のコマンドを送信すればよい。
planet.py path/to/config.ini
planet.pyの初回実行時には、Planetによるフィード処理の進捗状況がメッセージ表示されるはずである。これが終了したら、新規に構築したPlanetサイトのURLに関するチェックを行う。その際には、例えば~/public_html/planetというディレクトリに構築したような場合でも、サイトのURLであるhttp://mysite.com/~user/planet/のみを検証すればよい。すべてが正常に機能していれば、config.iniにあるlog_levelをDEBUGからERRORに変更して、ログレベルを切り換える。
残された作業は、planet.pyを定期実行させるためのcronジョブの設定である。というのも、たいていの場合Planetページは一定間隔で更新させる形で運用するものだからだ。ジョブの実行間隔は、1時間以上にしておくことをお勧めする。統合したブログのフィード情報の収集はそう頻繁に行っても仕方ないし、1時間以下の間隔で実行させても単なる通信帯域の無駄にしかならないであろう。
必要な作業はこれだけである。つまり自分の好みにカスタマイズしたPlanetを運用したければ、設定ファイルの変更とフィード情報の追加を行い、フィード情報の取得を定期実行させるためのcronジョブを設定さえすればよいのだ。