Plagger::Plugin::Filter::BBSNotePermalink

BBSNote 8.xで実は出力できるRSS。とはいえPermalinkは壊れてるし本文が要約すら入ってないしとその使えなさは異常だけど、PlaggerのおかげでPermalinkさえ直せばなんとか使いものになる。しかしそもそも絵師はBBSNote 7.xからの移行すらしないのであんまり意味がないのであった。

BBSNotePermalink.pm

package Plagger::Plugin::Filter::BBSNotePermalink;
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) = @_;

    my $entry = $args->{entry};
	
    if ($entry->permalink =~ m!^(.+?/bbsnote\.cgi)\?fc\=rss(.*)!) {
        my $permalink = $1.$2;
        $permalink =~ s/\%26/\&/;
        $entry->permalink($permalink);
        $context->log(info => "rewrite permalink to $permalink");
    }
}

1;

config.yaml

global:
  plugin_path: 
    - /Users/ec/lib/Plagger/Plugin/
  timezone: Asia/Tokyo

plugins:
  - module: Subscription::Config
    config:
      feed:
        - http://xxx/bbsnote.cgi?fc=rss

  - module: Filter::BBSNotePermalink

  - module: Filter::EntryFullText
    config:
      store_html_on_failure: 1

  - module: Filter::ResolveRelativeLink

  - module: Filter::Rule
    rule:
      module: Fresh
      mtime:
        path: /Users/ec/temp/bbsnote.mtime
        autoupdate: 1

  - module: Publish::Gmail
    config:
      mailto:   xxx@gmail.com
      mailfrom: xxx@gmail.com
      mailroute:
        via: smtp_tls
        host: smtp.gmail.com:587
        username: ecceecce
        password: base64::AyBAbtU0