|
|
||
Plugin/Subscription/2chThreadList.pm
package Plagger::Plugin::Subscription::2chThreadList; use strict; use base qw( Plagger::Plugin ); use URI; use XML::Feed; sub register { my($self, $context) = @_; $context->register_hook( $self, 'subscription.load' => \&load, ); } sub load { my($self, $context) = @_; my $threadlist_uri = $self->conf->{url} or $context->error('ThreadList url is missing'); my $remote = XML::Feed->parse(URI->new($threadlist_uri)) or $context->error("feed parse error $threadlist_uri"); for my $r ($remote->entries) { $context->log(info => "thread: ". $r->link); my $feed = Plagger::Feed->new; $feed->url($r->link); $feed->link($r->link); $feed->title($r->title); $context->subscription->add($feed); } }
config.yaml
- module: Subscription::2chThreadList config: url: http://rss.s2ch.net/test/-/music4.2ch.net/contemporary/
based on
http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Subscription/HatenaGroup.pm
should be used with
http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Aggregator/Xango.pm
(´・ω・`)
つ Plugin/Filter/2chRSSPermalink.pm
package Plagger::Plugin::Filter::2chRSSPermalink; use strict; use base qw( Plagger::Plugin ); sub register { my($self, $context) = @_; $context->register_hook( $self, 'update.entry.fixup' => \&filter, ); } sub filter { my($self, $context, $args) = @_; if($args->{entry}->permalink =~ m|^http://rss\.s2ch\.net/|) { my $permalink = $args->{entry}->permalink; $permalink =~ s!rss\.s2ch\.net/test/\-/!!; $permalink =~ s!(2ch\.net/)!\1test/read.cgi/!; $args->{entry}->link($permalink); $context->log(info => "Permalink rewritten to $permalink"); } } 1;
つ assets/plugins/filter-entryfulltext/2ch.pl
sub handle { my($self, $args) = @_; $args->{entry}->link =~ qr!^http://\w+\.2ch\.net/.*\d+/\d+$!; } sub extract { my($self, $args) = @_; if($args->{entry}->link =~ m!(\d+)$!) { my $id = $1; if ($args->{content} =~ m|<dt>($id.*)</dl>|s){ my $body = $1; return "<div>$body</div>"; } } return; }
つ config.yaml
- module: Subscription::Config config: feed: - url: http://rss.s2ch.net/test/-/aa5.2ch.net/aasaloon/1143246134/ - module: Filter::2chRSSPermalink - module: Filter::EntryFullText
( ・∀・)