Plagger
IE7での動作の改善を行いました|Live Dwango Reader 開発日誌 これで LDR 側の js が変わったせいか? hackldrapi.user.js の 102行目、w.after_init.add(init); がエラーになる。patch書いた。 --- hackldrapi.user.js (revision 2043) +++ hackldrapi.user…
ひさしぶり。 Perl-5.8.2 (Vine Linux 3.2) と Encode.pm ($Encode::VERSION 1.9801) で Filter::Regexp を使おうとしたら、 Too many arguments for Encode::decode_utf8 at /home/fujiwara/devel/plagger/lib/Plagger/Plugin/Filter/Regexp.pm line 20, ne…
出社して、さて前夜から溜った feed を読もうかな、と Plagger を走らせて。 未読 entry が 500 ほど溜った状態で Can't use string ("500 Server closed connection wit") as a HASH ref while "strict refs" in use at /home/fujiwara/devel/plagger/lib/P…
LLRing の締め切りは過ぎちゃったけど。Filter::Eratosthenes. entry.body に含まれる素数以外の数値を削除 (又は config で指定された文字列に置換) するフィルタ。誰かネタにしてたような…… package Plagger::Plugin::Filter::Eratosthenes; use strict; u…
CustomFeed::POP3 は、サーバにあるメールを全部ダウンロードして処理を行う。読んで消す場合は問題ないけど、サーバに残したい場合に困る。 全部取得してから Rule::Fresh, Rule::Deduped で対処してもいいけど、UIDL を見て余計な取得が起きないようにした…
Changeset 1000 を目前にして睨みあいが続いている今日この頃ですが。 Plagger.pm の rewite_config で、書き換え前の値が正規表現のメタキャラクタを含んでいると誤動作するので patch. \Q \E で括るだけ。 --- lib/Plagger.pm (リビジョン 999) +++ lib/Pl…
ひさしぶりに Plagger。XML::Atom::Client を使って、AtomAPI で entry を post する。既にあるかと思ったのだけど、まだないよね? (中身は Publish::HatenaBookmark ほぼそのまんま) しかしこれ、集めてきた entry を post しまくるわけだが…… SPAM blog 作…
Hobbit / BigBrother の bb2.html を読むネタ。 http://subtech.g.hatena.ne.jp/miyagawa/20060611/1149963082 を読んで、CustomFeed を作らなくても何とかなりそうだったので。 # handle する手がかりが bb2.html という URL のみ、というのはちょっとアレ…
<meta name="generator"> が typepad / Movable Type のときだけ動くようになっている。他の sixapart-standard な HTML にも適用したいなあ。 [追記] r930で取り入れられました。 sub handle { my($self, $args) = @_; - $args->{content} =~ m!<meta name="generator" content="(?:http://www\.typepad\.com/|Movable Type.*?)" />!; + return 1 if $args->{content} …</meta></meta>
エントリの重複チェックを行う Rule::Deduped のサブクラス。Store::DBIC で保存した entry から検索するもの。 Store::DBIC を愛用しているので、僭越ながら書いてみました。 - module: Filter::Rule rule: module: Deduped engine: DBIC - module: Store::…
突然なんで? と思ったら… Firefox の Cookie を有効にしていた ログインして、ライトモードで読んでいた ため。ライトモードと普通のモードは HTML が違う、というオチ。 しかもライトモードだと切り出すヒントになるようなマークアップがないな… <H2>業界共通の</h2>…
もうちょっと整理。 Plagger::Thing に、以下のようにする。 use Scalar::Util qw( blessed ); sub _to_plain { my $val = shift; blessed $val && $val->can('to_plain_object') ? $val->to_plain_object : $val; } sub to_plain_object { my $self = shift…
miyagawaさんと先週ちょっと話してそのままになってた。 やはり、単に Plagger::Feed を丸ごと Dump するだけだと余計なオブジェクトが入ったりして、あまり嬉しくない。Feed, Entry, Enclosure あたりが to_plain_object のようなメソッドを実装して、bless…
先週からほったらかしのネタ。 File::Mork で history.dat を読んで CustomFeed にする、というものだが。title のデコードがわからん。 例えば "YouTube - スプー、襲来 [SPOO ATTACK]" というタイトル。 Y$00o$00u$00T$00u$00b$00e$00 $00-$00 $00$B90$D70…
やっぱりちゃんと Schema::Pg を作ろうと思い立ち、作業してみたらちょっと悩む。Schema/SQLite/*.pm の belongs_to, has_many で __PACKAGE__->belongs_to( feed => 'Plagger::Schema::SQLite::Feed' );こんな風に hard code してあるところはどうしよう? …
なんとなく PostgreSQL にしたくなった。 Schema::Pg を作る必要があるか? と思ったのだけど、SQLite のそのまんまでいける。 ただ entry.date が timestamp 型でないのが少々気持ち悪くはあるが。 $ createdb -E UTF_8 plagger $ echo .schema | sqlite3 pl…
cl.pocari.org - YouTube でタグによる RSS フィードを取得するには YouTube から直接 RSS が取れるのか。 で、実際にPlaggerで取ってみたら entry->icon がなくて悲しかったので Filter を。[追記] Rev.849 で Aggregator::Simple が Media RSS から thumbn…
サムネイル画像の URL が変わったらしく、CustomFeed::YouTube で取れなくなっていたので patch. @@ -63,7 +63,7 @@ $title_flag = 0; } }; - m!<img src="(http://static\d+.youtube.com/[^">]+/1.jpg)" class="vimgSm" />! + m!<img src="(http://[\w-]*static\d+(.[\w-]+)?\.youtube.com/[^">]+/1.jpg)" class="vimgSm" />! and $data->{image}->{url}…
index.html の書き換え云々、の部分は GM でやってしまえ。ということで。先頭の var base = の部分はご自分の環境に合わせて変えてください。 ただ、Jemplate.js (0.18に付属のもの) に以下の patch を当てないとループを回ってくれない。"No object to ite…
http://www.fladdict.net/app/hatenatube/ Hatena-Tube 面白い。 願わくば、データを JSON で扱ってくれたりすると「それPlaggerで(ry」ということになって、PlaggerLDR のような面白いことができるんだけど……ということで、 Plagger で Feed から JSON をつ…
http://d.hatena.ne.jp/sfujiwara/20060518/1147979612 EntryFullText でレポートページも取ってくる。assets/plugins/Filter-EntryFullText/hobbit.pl sub handle { my($self, $args) = @_; $args->{entry}->permalink =~ m!bb-histlog\.sh!; } sub extract…
Hobbit / Big Brother のイベントサマリー画面(bb2.html) を読む Feed。サーバ監視のお供に。 status red はメールが飛んでくるからすぐ分かるのだけど、status yellow (軽微な障害) は見落としがちなので。 一応、以下の3つで動作確認。 BB-1.9c : 会社の H…
Mozilla/Firefox の history.dat(履歴を保存している) を読む File::Mork というモジュールが CPAN にあるので、それを使って…… package Plagger::Plugin::Filter::Mork; use strict; use base qw( Plagger::Plugin ); use File::Mork; sub register { my($s…
Plagger::UserAgent は LWP::UserAgent を継承しているので、credentials を config で定義できればよさそう。 しかし、いろんな Plugin で Plagger::UserAgent->new() してるようだ。 どうやって設定したらいいのかね。Mozilla/Firefox の signons.txt の中…
会社の Linux マシンで Plagger を使っていて、Subscription::LivedoorReader を mark_read: 1 にしている。 cron で 5分ごとに起動しているのだけど、そのまんまマシンを落とさずに帰ると、自宅から LDR が読めない。(Plagger が既読に設定しちゃうから)退…
http://subtech.g.hatena.ne.jp/miyagawa/20060509/1147150987 これはすごい。社内の (Internetに出せない) Feed も LivedoorReader でさくさく読める。 Greasemonkey なしで使うためにこんな手段を講じてみた。要は http://reader.livedoor.com/api/(all|su…