« リポジトリみれるようにした。 | メイン | DS買った »

Plagger::Plugin::Filter::ImageGathering

Plaggerがenclosure対応ってことで。
Image TagのURLをenclosureに追加していくPlugin

  - module: Filter::ImageGathering

configはない。

package Plagger::Plugin::Filter::ImageGathering;

use strict;
use base qw( Plagger::Plugin );

sub register {
    my($self, $context) = @_;
    $context->register_hook(
        $self,
        'update.entry.fixup' => \&update,
    );
}

sub update {
    my ( $self, $context, $args ) = @_;
    my $body = $args->{entry}->body;

    while($body =~ m!<img([^>]+)>!ig){
        $self->gathering($&,$context,$args)
    }
}

sub gathering {
    my ( $self, $tag, $context, $args ) = @_;

    my %attrs;
    while ( $tag =~ m!(\w+)\s*=\s*(["'])(.*?)\2!g ) {
        $attrs{$1} = $3;
    }

    return unless $attrs{src};

    my $enclosure = Plagger::Enclosure->new;
    $enclosure->url( URI->new($attrs{src}) );
    #$enclosure->length();
    #$enclosure->type();

    $args->{entry}->add_enclosure($enclosure);
}

1;



http://svn.nomadscafe.jp/public/library/perl/Plagger-Plugin-Filter-ImageGathering/

に置いておいた。