Changeset 79
- Timestamp:
- 02/17/06 17:07:11
- Files:
-
- trunk/plagger/lib/Plagger.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Entry.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Feed.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Plugin.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Filter/FeedBurnerPermalink.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Plugin/Filter/HatenaBookmarkUsersCount.pm (added)
- trunk/plagger/lib/Plagger/Plugin/Subscription/Bloglines.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Widget/HatenaBookmarkUsersCount.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/lib/Plagger.pm
r78 r79 11 11 12 12 use base qw( Class::Accessor::Fast ); 13 __PACKAGE__->mk_accessors( qw(conf stashupdate subscription plugins_path) );13 __PACKAGE__->mk_accessors( qw(conf update subscription plugins_path) ); 14 14 15 15 use Plagger::Date; … … 33 33 my $self = bless { 34 34 conf => {}, 35 stash => {},36 35 update => Plagger::Update->new, 37 36 subscription => Plagger::Subscription->new, trunk/plagger/lib/Plagger/Entry.pm
r61 r79 3 3 4 4 use base qw( Class::Accessor::Fast ); 5 __PACKAGE__->mk_accessors(qw( title author tags date link id summary body rate ));5 __PACKAGE__->mk_accessors(qw( title author tags date link id summary body rate meta)); 6 6 7 7 use DateTime::Format::Mail; … … 14 14 widgets => [], 15 15 tags => [], 16 meta => {}, 16 17 }, $class; 17 18 } trunk/plagger/lib/Plagger/Feed.pm
r56 r79 3 3 4 4 use base qw( Class::Accessor::Fast ); 5 __PACKAGE__->mk_accessors(qw( link url image description language author updated tags stashtype ));5 __PACKAGE__->mk_accessors(qw( link url image description language author updated tags meta type )); 6 6 7 7 use Digest::MD5 qw(md5_hex); … … 10 10 my $class = shift; 11 11 bless { 12 stash=> {},12 meta => {}, 13 13 tags => [], 14 14 entries => [], trunk/plagger/lib/Plagger/Plugin.pm
r78 r79 11 11 rule => $opt->{rule}, 12 12 rule_op => $opt->{rule_op} || 'AND', 13 stash=> {},13 meta => {}, 14 14 }, $class; 15 15 $self->init(); trunk/plagger/lib/Plagger/Plugin/Filter/FeedBurnerPermalink.pm
r66 r79 7 7 $context->register_hook( 8 8 $self, 9 'update. fixup' => \&filter,9 'update.entry.fixup' => \&filter, 10 10 ); 11 11 } … … 14 14 my($self, $context, $args) = @_; 15 15 16 for my $feed ($context->update->feeds) { 17 for my $entry ($feed->entries) { 18 $self->feedburner_filter($context, $entry); 19 } 20 } 21 } 22 23 sub feedburner_filter { 24 my($self, $context, $entry) = @_; 25 16 my $entry = $args->{entry}; 26 17 if ($entry->link =~ m!^http://feeds\.feedburner\.(com|jp)/!) { 27 $entry->permalink( $entry->id );18 $entry->permalink( $entry->id . "" ); # stringify guid 28 19 } 29 20 } trunk/plagger/lib/Plagger/Plugin/Subscription/Bloglines.pm
r68 r79 87 87 $feed->language($source->{language}); 88 88 $feed->author($source->{webmaster}); 89 $feed-> stash->{bloglines_id} = $source->{bloglines}->{siteid};89 $feed->meta->{bloglines_id} = $source->{bloglines}->{siteid}; 90 90 91 91 for my $item ( $update->items ) { trunk/plagger/lib/Plagger/Plugin/Widget/HatenaBookmarkUsersCount.pm
r76 r79 2 2 use strict; 3 3 use base qw( Plagger::Plugin Class::Accessor::Fast ); 4 __PACKAGE__->mk_accessors(qw( permalink map ));5 use Plagger::Rule;6 use XMLRPC::Lite;7 4 8 5 sub register { … … 10 7 $context->register_hook( 11 8 $self, 12 'update.entry.fixup' => \&vacuum, 13 'update.fixup' => \&update, 14 'publish.entry.fixup' => \&entry, 9 'publish.entry.fixup' => \&add, 15 10 ); 16 $self->permalink({});17 11 } 18 12 19 sub vacuum{13 sub add { 20 14 my($self, $context, $args) = @_; 21 $self->permalink->{$args->{entry}->permalink} = 0; 22 } 23 24 sub update { 25 my($self, $context) = @_; 26 $self->map(XMLRPC::Lite-> 27 proxy('http://b.hatena.ne.jp/xmlrpc')-> 28 call('bookmark.getCount', keys %{$self->permalink})-> 29 result); 30 } 31 32 sub entry { 33 my($self, $context, $args) = @_; 34 return unless $self->map; 35 $args->{entry}->add_widget($self) if $self->map->{$args->{entry}->permalink}; 15 $args->{entry}->add_widget($self) 16 if defined($args->{entry}->meta->{hatenabookmark_users}); 36 17 } 37 18 38 19 sub html { 39 20 my($self, $entry) = @_; 21 40 22 my $uri = URI->new('http://b.hatena.ne.jp/entry/' . $entry->permalink); 41 23 my $url = HTML::Entities::encode($uri->as_string); 42 my $user = $self->map->{$entry->permalink}; 43 my $users = $user > 1 ? "$user users" : "$user user"; 44 $user > 9 ? 24 25 my $user = $entry->meta->{hatenabookmark_users}; 26 my $users = $user >= 2 ? "$user users" : "$user user"; 27 28 $user >= 10 ? 45 29 qq(<strong style="background-color: #ffcccc; font-weight: bold; font-style: normal; display: inline;"><a href="$url" style="color: red;">$users</a></strong>) 46 : $user > 2 ?30 : $user >= 2 ? 47 31 qq(<em style="background-color: #fff0f0; font-weight: bold; display: inline; font-style: normal;"><a href="$url" style="color: #ff6666;">$users</a></em>) 48 32 : qq(<a href="$url">$users</a>); 49 33 } 34 50 35 1; 36
