root/lang/perl/plagger/lib/Plagger/Plugin/Filter/ScrapeMetaData.pm

Revision 4458, 1.2 kB (checked in by kan, 8 months ago)

add Plagger::Plugin::Filter::ScrapeMetaData?

Line 
1package Plagger::Plugin::Filter::ScrapeMetaData;
2use strict;
3use base qw( Plagger::Plugin );
4
5sub register {
6    my($self, $context) = @_;
7    $context->register_hook(
8        $self,
9        'update.entry.fixup' => \&scrape,
10    );
11}
12
13sub scrape {
14    my($self, $context, $args) = @_;
15
16      for my $pattern (@{$self->conf->{pattern}}) {
17          next if $pattern->{title} && $args->{entry}->title ne $pattern->{title};
18          for my $value ($args->{entry}->body =~ /@{[$pattern->{rule}]}/g) {
19              $args->{entry}->meta->{$pattern->{name}} ||= [];
20              push(@{$args->{entry}->meta->{$pattern->{name}}}, $value);
21              $context->log(info => "scrape @{[$pattern->{name}]}: $value success. ");
22          }
23      }
24}
25
261;
27__END__
28
29=head1 NAME
30
31Plagger::Plugin::Filter::ScrapeMetaData - it's setting meta data by regexp
32
33=head1 SYNOPSIS
34
35  - module: Filter::ScrapeMetaData
36    config:
37      pattern:
38        - name: weight
39          rule: "weight: ([0-9.]+)kg"
40
41=head1 DESCRIPTION
42
43Filter::ScrapeMetaData is setting meta data by regexp.
44Meta data used publish plugins (exp. Publish::HatenaGraph).
45
46=head1 AUTHOR
47
48Kan Fushihara <kan.fushihara at gmail.com>
49
50=head1 SEE ALSO
51
52L<Plagger>
53
54=cut
Note: See TracBrowser for help on using the browser.