Changeset 54
- Timestamp:
- 02/08/06 19:41:08
- Files:
-
- trunk/plagger/config.yaml.sample (modified) (2 diffs)
- trunk/plagger/lib/Plagger.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Entry.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Feed.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Operator.pm (added)
- trunk/plagger/lib/Plagger/Plugin/Splice (added)
- trunk/plagger/lib/Plagger/Plugin/Splice/Tag.pm (added)
- trunk/plagger/lib/Plagger/Rules.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/config.yaml.sample
r44 r54 23 23 url: http://example.com/mySubscription.opml 24 24 25 - module: Subscription::Config25 - module: Subscription::Config 26 26 config: 27 27 feed: … … 30 30 31 31 - module: Aggregator::Simple 32 33 - module: Splice::Tag 34 config: 35 tag: perl tech 36 op: OR 37 id: perl-tech 32 38 33 39 - module: Filter::URLBL trunk/plagger/lib/Plagger.pm
r51 r54 108 108 } 109 109 110 $self->run_hook('update.fixup'); 111 110 112 for my $feed ($self->update->feeds) { 111 113 for my $entry ($feed->entries) { trunk/plagger/lib/Plagger/Entry.pm
r7 r54 10 10 my $class = shift; 11 11 bless { 12 rate => 0,12 rate => 0, 13 13 widgets => [], 14 tags => [], 14 15 }, $class; 15 16 } … … 35 36 } 36 37 38 sub has_tag { 39 my($self, $want_tag) = @_; 40 for my $tag (@{$self->tags}) { 41 return 1 if $tag eq $want_tag; 42 } 43 return 0; 44 } 45 37 46 1; 38 47 trunk/plagger/lib/Plagger/Feed.pm
r20 r54 4 4 use base qw( Class::Accessor::Fast ); 5 5 __PACKAGE__->mk_accessors(qw( link url image description language author updated tags stash type )); 6 7 use Digest::MD5 qw(md5_hex); 6 8 7 9 sub new { … … 40 42 } 41 43 44 sub id { 45 my $self = shift; 46 $self->{id} = shift if @_; 47 $self->{id} || Digest::MD5::md5_hex($self->url); 48 } 49 42 50 1; trunk/plagger/lib/Plagger/Rules.pm
r52 r54 1 1 package Plagger::Rules; 2 2 use strict; 3 4 use List::Util qw(reduce); 5 6 our %Ops = ( 7 AND => [ sub { $_[0] && $_[1] } ], 8 OR => [ sub { $_[0] || $_[1] } ], 9 XOR => [ sub { $_[0] xor $_[1] } ], 10 NAND => [ sub { $_[0] && $_[1] }, 1 ], 11 NOR => [ sub { $_[0] || $_[1] }, 1 ], 12 ); 3 use Plagger::Operator; 13 4 14 5 sub new { 15 6 my($class, $op, @rules) = @_; 16 my $ops_sub = $Ops{uc($op)}7 Plagger::Operator->is_valid_op(uc($op)) 17 8 or Plagger->context->error("operator $op not supported"); 18 9 19 10 bless { 20 ops_sub => $ops_sub->[0], 21 ops_not => $ops_sub->[1], 11 op => uc($op), 22 12 rules => [ map Plagger::Rule->new($_), @rules ], 23 13 }, $class; … … 36 26 return 1 unless @bool; 37 27 38 my $bool = reduce { $self->{ops_sub}->($a, $b) } @bool; 39 $bool = !$bool if $self->{ops_not}; 40 $bool; 28 Plagger::Operator->call($self->{op}, @bool); 41 29 } 42 30
