Changeset 1373
- Timestamp:
- 08/18/06 01:43:35
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/lib/Plagger/Plugin/Filter/Delicious.pm
r1349 r1373 4 4 5 5 use Digest::MD5 qw(md5_hex); 6 use URI;6 use Plagger::UserAgent; 7 7 use XML::Feed; 8 8 … … 18 18 my($self, $context, $args) = @_; 19 19 20 # xxx need cache & interval21 20 my $interval = $self->conf->{interval} || 1; 22 21 sleep $interval; … … 24 23 my $md5 = md5_hex($args->{entry}->permalink); 25 24 my $url = "http://del.icio.us/rss/url/$md5"; 26 my $feed = XML::Feed->parse( URI->new($url) ); 25 26 $self->log(info => "Going to fetch $url"); 27 28 my $ua = Plagger::UserAgent->new; 29 $ua->timeout(30); 30 31 my $res = $ua->fetch($url); 32 33 if ($res->is_error) { 34 $self->log(error => "Fetch URL $url failed."); 35 return; 36 } 37 38 my $feed = XML::Feed->parse(\$res->content); 27 39 28 40 unless ($feed) { … … 42 54 my $delicious_users = $feed->entries; 43 55 if ($delicious_users >= 30 && $self->conf->{scrape_big_numbers}) { 56 my $url = "http://del.icio.us/url/$md5"; 57 $self->log(info => "users count is more than 30. Trying to scrape from $url."); 44 58 sleep $interval; 45 59 46 my $url = "http://del.icio.us/url/$md5";47 my $ua = Plagger::UserAgent->new;48 60 my $res = $ua->fetch($url); 49 61 … … 58 70 $args->{entry}->meta->{delicious_rate} = rate_of_color($delicious_users); 59 71 $args->{entry}->meta->{delicious_users} = $delicious_users; 72 $self->log(info => "set delicious_users to $delicious_users"); 60 73 } 61 74 trunk/plagger/t/plugins/Filter-Delicious/scrape.t
r1362 r1373 15 15 class: Plagger::Cache::Null 16 16 plugins: 17 - module: Subscription::Config17 - module: CustomFeed::Debug 18 18 config: 19 feed: 20 - http://del.icio.us/rss/ 19 title: foo 20 entry: 21 - title: bar 22 link: http://del.icio.us/ 21 23 - module: Filter::Delicious 24 config: 25 scrape_big_numbers: 1 22 26 --- expected 23 ok $context->update->feeds->[0]->entries->[0]->tags->[0]; 24 ok $context->update->feeds->[0]->entries->[0]->meta->{delicious_users}; 25 ok $context->update->feeds->[0]->entries->[0]->meta->{delicious_rate}; 27 ok $context->update->feeds->[0]->entries->[0]->meta->{delicious_users} > 30;
