Dear Home Owner, このページをアンテナに追加 RSSフィード

 | 

2006-04-13

P::P::Subscription::2chThreadList  P::P::Subscription::2chThreadList - Dear Home Owner, を含むブックマーク はてなブックマーク -  P::P::Subscription::2chThreadList - Dear Home Owner,  P::P::Subscription::2chThreadList - Dear Home Owner, のブックマークコメント

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

http://plagger.org/trac/changeset/587

P::P::Filter::2chRSSPermalink + P::P::Filter::EntryFullText  P::P::Filter::2chRSSPermalink + P::P::Filter::EntryFullText - Dear Home Owner, を含むブックマーク はてなブックマーク -  P::P::Filter::2chRSSPermalink + P::P::Filter::EntryFullText - Dear Home Owner,  P::P::Filter::2chRSSPermalink + P::P::Filter::EntryFullText - Dear Home Owner, のブックマークコメント

(´・ω・`)

f:id:youpy:20060413164648p:image

つ 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

( ・∀・)

f:id:youpy:20060413134152p:image

http://plagger.org/trac/changeset/582

トラックバック - http://subtech.g.hatena.ne.jp/youpy/20060413
 |