May 20, 2006

Abstract

LoveVector の、2006 年 05 月 20 日の記事一覧です。

prev
February 28, 2006
next
August 31, 2006

初^H暮春のおよろこび申し上げます

URI
http://okowa.org/vector/2006/05/20/newyear
Created
2006-05-20T18:30:26+09:00

明けましておめでとうございます,と五月も半ばに近づいた頃に敢えて言ってみます。年始のごあいさつなので,今年の年賀状にくっつけた覆面算でも晒しておきましょうか。

あっち(どっち)の人は 16 進としても解いてみましょう。10/16進,どちらも唯一解です。一問で二度できてお得(といっても,すぐに虱潰しに移行する駄作ですが)。ちなみに,去年のにもそういった要素が入ってます

Plagger & PlaggerLDR のインストール

URI
http://okowa.org/vector/2006/05/20/install-plaggerldr
Created
2006-05-20T18:31:55+09:00

Plagger かわいいよ Plagger。便利につかっています。主にインストールまわりのメモ(for とある誰か)。

僕は FreeBSD ユーザでして,otsune さんの記事 を参考に,なるべく ports ベースでインストールしました(開発用のクライアントではそんな面倒くさいことしてられないけど)。ただ,いくつか差分があって:

くらいでしょうか(昔にやったのであまり覚えてない)。

追記。いまや上記のインストールは portinstall textproc/p5-Plagger のみでよいはずです。便利な世の中になったものです。

次。エントリは Livedoor Reader で読みたかったので PlaggerLDR をいれます。これは feature-server ブランチ にあります。あとで混乱しそうなので,trunk とは混ぜないことにしました。

cd ~plagger
svn co http://svn.bulknews.net/repos/plagger/trunk/plagger trunk
svn co http://svn.bulknews.net/repos/plagger/branches/feature-server/plagger feature-server

config.yaml に適当に追加。

- module: Store::DBIC
  config:
    schema_class: Plagger::Schema::SQLite
    connect_info: [ 'dbi:SQLite:/home/plagger/plagger.db' ]
- module: Filter::HTMLScrubber
  config:
    default:
      - 1
      -
        '*': 1
    deny: [ 'script', 'iframe' ]

LDR 上で突然真っ白な画面にぶっ飛ぶのを避けるために 混入した script 等が実行されるのを避けるために Filter::HTMLScrubber をかませます。ただ,default: 1 だけだと a/@href なども削られてしまったので,手抜きで属性全許可(よろしくない)。

データベース作成。

sqlite3 plagger.db < feature-server/assets/plugins/Store-DBIC/plagger.sqlite.sql

関連モジュールのインストール。

portinstall www/p5-Catalyst
cpan -i Catalyst::View::JSON
cpan -i HTML::Scrubber

多分ただの p5-Catalyst だけでいいはず。僕は p5-Task-Catalyst を(前もって)いれてました。

Catalyst のルートディレクトリをつくって設定ファイルへのリンクをはります。

mkdir feature-server/root
ln -s ../../config.yaml feature-server/root/

メインでぶん回すのは trunk のほうなので,いくつかのプラグインが見えるように。

ln -s ../feature-server/lib/Plagger/Plugin/Filter/HTMLScrubber.pm plugins/
ln -s ../feature-server/lib/Plagger/Plugin/Store/DBIC.pm plugins/
ln -s ../../../feature-server/lib/Plagger/Schema trunk/lib/Plagger/

あとは普通に動くんじゃないかな。

feature-server/bin/plaggerldr_server.pl --port=37564 > /dev/null 2>&1 &

新しく port を開けたくなかったので,Apache:80 の適当なひみつ URL で読めるようにして:

ProxyRequests off
ProxyPass /path/to/ldr/ http://127.0.0.1:37564/

Firefox に hackldrapi.user.js GM スクリプトをインストールし LDR を開きます。謎の vi コマンド :plagger add pldr http://example.jp/path/to/ldr/ を発行して API サーバを登録したあと,:use pldr で切り替え。

いやあ快適快適。もろもろの内輪ページのフィードとか認証付きフィードとか突っ込みまくりです。

PlaggerLDR で無理やり icon を表示する patch

URI
http://okowa.org/vector/2006/05/20/patch-pldr-icon
Created
2006-05-20T20:39:53+09:00

いまの PlaggerLDR は icon がつかなくて mixi とかが悲しいので。

Index: lib/Plagger/Plugin/Store/DBIC.pm
===================================================================
--- lib/Plagger/Plugin/Store/DBIC.pm    (revision 789)
+++ lib/Plagger/Plugin/Store/DBIC.pm    (working copy)
@@ -103,10 +103,15 @@
             link => $feed_entry->link,
         });

-        for my $attr (qw/title author summary date body rate/) {    # todo: icon
+        for my $attr (qw/title author summary date rate/) {    # todo: restruct
             $entry->$attr( $feed_entry->$attr )
                 if defined $feed_entry->$attr && (!$entry->$attr or $entry->$attr ne $feed_entry->$attr);
         }
+        if (defined $feed_entry->body) {
+            my $tt = $c->template;
+            $tt->process('dbic_notify.tt', { entry => $feed_entry }, \my $body) or $c->error($tt->error);
+            $entry->body($body) if !$entry->body or $entry->body ne $body;
+        }
         $entry->insert_or_update if $entry->is_changed;

         # meta

assets/plugins/Store-DBIC/dbic_notify.tt:

<div>
[% USE util = Plagger.Util -%]
[% IF entry.icon %]<div><img [% util.dumbnail(entry.icon, width=150, height=60) %] align="right" src="[% entry.icon.url | html %]" alt="" /></div>
[% END -%]
[% IF entry.body.match('(?i)^<p[ >]') %][% entry.body %][% ELSE %]<div style="padding: 1em 0">[% entry.body %]</div>[% END %]
</div>

スキーマを変えて PlaggerLDR 側でやるのが正攻法だと思うけど,面倒なのでとりあえずこれで。

良く考えたらこれ Filter:: 書くべきだったかな。まぁいいや。

Topic Path

  1. okowa.org
  2. LoveVector
  3. 2006
  4. May
  5. 20
Last-Modified
2012-03-15T21:51:09+09:00
Feeds
Recent Updates (RSS 1.0)
Powered by
XML::LibXSLT / format.xsl / Movable Type 5.13-ja
LoveVector: klm <klm at okowa dot org>