samidare_plus

samidare_plusとは

samidare の機能追加版。はてなアンテナ級の使いやすさを目指す。 動作例は こちら。 googleplotによる普及率(?)プロットはこちら

ダウンロード

インストール条件

  • Ruby1.8.1以上がインストールされていること。
  • samidareの04/06/29時点でのCVS HEADがインストールされていること。(htree,ruby/zlib等が必要)
  • diff にパスが通っていること。
  • ImageMagick(convert)にパスが通っていること。

ライセンス

samidare自身にならってGPLです。

インストール

tar.gzを展開し、内容をsamidareのインストールディレクトリに上書きしてください。config.ymlおよびt.latest.htmlが上書きされるので必要ならバックアップを取ってください。

あとは、config.rb,samidare_plus.css,edit/dot.htaccessをサイトに合わせて適宜修正したのちに、config.ymlに巡回サイトを羅列してください。旧来のsamidareと互換性はありますが、同梱のサンプルに倣ってCategoryを設定するようにしてください。

使い方

./samidare_update

を実行すると、以下の静的なhtmlファイルが生成されます。

latest.html トップです。差分の検出順に、差分つきで表示します。差分表示のあるものは、アイコンをクリックすると表示ON/OFFされます。
category.html カテゴリ別に、同じく差分の検出順で表示します。差分表示のあるものは、アイコンをクリックすると表示ON/OFFれます。
edit.html サイトの追加・削除・編集を行います。 サイトのアイコンをクリックすると編集フォームが開きますので適宜編集して「更新」を押してください。複雑な編集にはconfig.ymlを直接修正することを推奨します。
latest_k.html latest.htmlの携帯版です。
category_k.html category.htmlの携帯版です。

その後は、samidare_updateをcronなどで定期的に実行してください。 現状では、edit.htmlから編集を行っても、samidare_updateが実行されるまでは表示に何も反映されません。

テンプレートの修正

t.*.htmlを書き換えることで、デザインや表示を修正できます。テンプレート内に

<div _if="entry['diffContents']">
<div _iter="entry['diffContents'].each//i">
 <span _text="i['title']"/>
<span _text="i['description']">
</div>
</div>

ように書けば、

  • RSSなサイトの場合:titleおよびdescription/content:encodedを表示
  • RSSじゃない場合:過去二回の差分をdescriptionとして表示

します。過去二回のログが溜まるまではいずれも表示されません。

また、edit.htmlにアクセスすると、URIの追加と削除、編集ができます。アイコンをクリックするとそれぞれのサイトの修正項目が現れます。edit/以下のディレクトリに認証をかけたほうがよいでしょう。

まだ動作が完全ではありません(一部のアイコンが、IEで見ると化けたりします。また、サイトによってはうまく取得できないアイコンがあります)が、config.ymlで指定したサイトのルートにあるfavicon.icoを取得してtmp/iconに保存し、表示することができます。テンプレートには、たとえば以下のように書けば、entryに対応 したfavicon.icoがpngに変換されたものを指してくれます。

<img _attr_src="entry['iconPath']" alt="-">

アイコンはtmp/icon以下に、そのサイトのURLに関連した名前のpngとして保存されますので、気に入らないアイコンが取得された場合はこれを直に書き換えればそれを表示します。アイコンが設定されていないサイトの場合はデフォルトのtmp.pngがそのままコピーされます。

はてなアンテナのインポート

はてなアンテナからsamidare_plusへのインポート

さくらインターネットサーバへのインストール(なかなか面倒です)

  • --prefix=$HOMEなどに、htree,iconv,zlibをインストール
  • samidare_plus.rbの先頭を

    #!/usr/local/bin/ruby -I$HOME/lib/ruby

    と変更して、ライブラリを読み込む。

  • POSTメソッドが通らないので、t.edit.html内のPOSTをGETに置換
  • edit/以下に.htaccessを置いて、

    AddHandler cgi-script .rb

    と書く。

その他雑多なこと&独り言

samidare_plus開発メモ

感想などは以下に追記ください。

コメント