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

Revision 4297, 1.4 kB (checked in by hsbt, 8 months ago)

lang/perl/plagger/lib/Plagger/Plugin/Filter

Line 
1package Plagger::Plugin::Filter::TwitterFeed;
2use strict;
3use base qw( Plagger::Plugin );
4
5our $VERSION = '0.01';
6
7sub register {
8    my($self, $context) = @_;
9    $context->register_hook(
10        $self,
11        'update.entry.fixup' => \&filter,
12    );
13}
14
15sub filter {
16    my($self, $context, $args) = @_;
17
18    return unless $args->{feed}->url =~ m!^http://twitter\.com/!;
19    $context->log(debug => "Found Twitter feed " . $args->{feed}->url);
20
21    # strip username in title
22    if ($args->{entry}->title =~ /^(.*)?:\ (.*)?$/) {
23        my $strip_title = $args->{entry}->title;
24        $strip_title =~ s/^(.*)?:\ //g;
25        $args->{entry}->title($strip_title);
26        $context->log(info => "Strip username in title: " . $args->{entry}->title);
27    }
28
29    # strip username in body
30    if ($args->{entry}->body =~ /^(.*)?:\ (.*)?$/) {
31        my $strip_body = $args->{entry}->body;
32        $strip_body =~ s/^(.*)?:\ //g;
33        $args->{entry}->body($strip_body);
34        $context->log(info => "Strip username in body: " . $args->{entry}->body);
35    }
36
37    # delete direct message
38    if ($args->{entry}->title =~ /^\@(.*)?$/ || $args->{entry}->body =~ /^\@(.*)?/) {
39        $context->log(info => "Strip direct message: " . $args->{entry}->link);
40        $args->{feed}->delete_entry($args->{entry});
41    }
42}
43
441;
45
46__END__
47
48=head1 NAME
49
50Plagger::Plugin::Filter::TwitterFeed -
51
52=head1 SYNOPSIS
53
54- module: Filter::TwitterFeed
55
56=head1 DESCRIPTION
57
58=head1 CONFIG
59
60=head1 AUTHOR
61
62SHIBATA Hiroshi
63
64=head1 SEE ALSO
65
66L<Plagger>
67
68=cut
Note: See TracBrowser for help on using the browser.