Changeset 226

Show
Ignore:
Timestamp:
03/01/06 23:00:56
Author:
miyagawa
Message:

use new Cache framework in CustomFeeds? and Subscriptions. Refs #65

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plagger/lib/Plagger/Plugin/CustomFeed/Frepa.pm

    r189 r226  
    5959        if ($self->conf->{fetch_body} && !$blocked) { 
    6060            $context->log(info => "Fetch body from $msg->{link}"); 
    61             Time::HiRes::sleep( $self->conf->{fetch_body_interval} || 1.5 ); 
    62             my($item) = $self->{frepa}->get_view_diary($msg->{link}); 
     61            my $item = $self->cache->get_callback( 
     62                "item-$msg->{link}", 
     63                sub { 
     64                    Time::HiRes::sleep( $self->conf->{fetch_body_interval} || 1.5 ); 
     65                    $self->{frepa}->get_view_diary($msg->{link}); 
     66                }, 
     67                "1 hour", 
     68            ); 
    6369            if ($item) { 
    6470                my $body = decode('euc-jp', $item->{description}); 
     
    9298    my($self, $url) = @_; 
    9399 
    94     unless ($self->{__icon_cache}->{$url}) { 
    95         Plagger->context->log(info => "Fetch icon from $url"); 
    96         $self->{__icon_cache}->{$url} = $self->{frepa}->get_top($url); 
    97     } 
    98  
    99     $self->{__icon_cache}->{$url}
     100    Plagger->context->log(info => "Fetch icon from $url"); 
     101    $self->cache->get_callback( 
     102        "icon-$url", 
     103        sub { $self->{frepa}->get_top($url) }, 
     104        '1 day', 
     105    )
    100106} 
    101107 
     
    126132    my $res = $self->{mecha}->submit; 
    127133    return 0 unless $self->{mecha}->success; 
     134    return 0 if $self->{mecha}->content =~ /loginside/; 
    128135 
    129136    return 1; 
     
    159166    my $link = shift; 
    160167 
    161     my $item
     168    my $item = {}
    162169    my $res = $self->{mecha}->get($link); 
    163170    return $item unless $self->{mecha}->success; 
     
    176183    my $link = shift; 
    177184 
    178     my $item
     185    my $item = {}
    179186    my $res = $self->{mecha}->get($link); 
    180187    return $item unless $self->{mecha}->success; 
  • trunk/plagger/lib/Plagger/Plugin/CustomFeed/Mixi.pm

    r189 r226  
    6060 
    6161        if ($self->conf->{show_icon} && !$blocked) { 
    62             # TODO: cache owner_id -> URL 
    6362            my $owner_id = ($msg->{link} =~ /owner_id=(\d+)/)[0]; 
    6463            my $link = "http://mixi.jp/show_friend.pl?id=$owner_id"; 
    6564            $context->log(info => "Fetch icon from $link"); 
    6665 
    67             my($item) = $self->{mixi}->get_show_friend_outline($link); 
     66            my $item = $self->cache->get_callback( 
     67                "outline-$owner_id", 
     68                sub { 
     69                    Time::HiRes::sleep( $self->conf->{fetch_body_interval} || 1.5 ); 
     70                    my($item) = $self->{mixi}->get_show_friend_outline($link); 
     71                    $item; 
     72                }, 
     73                '12 hours', 
     74            ); 
    6875            if ($item && $item->{image} !~ /no_photo/) { 
    6976                # prefer smaller image 
     
    8087        if ($self->conf->{fetch_body} && !$blocked) { 
    8188            $context->log(info => "Fetch body from $msg->{link}"); 
    82             Time::HiRes::sleep( $self->conf->{fetch_body_interval} || 1.5 ); 
    83             my($item) = $self->{mixi}->get_view_diary($msg->{link}); 
     89            my $item = $self->cache->get_callback( 
     90                "item-$msg->{link}", 
     91                sub { 
     92                    Time::HiRes::sleep( $self->conf->{fetch_body_interval} || 1.5 ); 
     93                    my($item) = $self->{mixi}->get_view_diary($msg->{link}); 
     94                    $item; 
     95                }, 
     96                '1 hour', 
     97            ); 
    8498            if ($item) { 
    8599                my $body = decode('euc-jp', $item->{description}); 
  • trunk/plagger/lib/Plagger/Plugin/CustomFeed/Yahoo360JP.pm

    r214 r226  
    9292 
    9393         if ($self->conf->{fetch_body}) { 
    94              $args->{body} = $self->fetch_body($mech, $args->{link}); 
     94             my $item = $self->cache->get_callback( 
     95                 "item-$args->{link}", 
     96                 sub { $self->fetch_body($mech, $args->{link}) }, 
     97                 "1 hour", 
     98             ); 
     99             $args->{body} = $item->{body} if $item->{body}; 
    95100         } 
    96101         $self->add_entry($feed, $args, $now, $format); 
     
    169174    my $content = decode('utf-8', $mech->content); 
    170175    if ($content =~ m!<div id="mgbp_body">\n(.*?)</div>!sg) { 
    171         return $1
     176        return { body => $1 }
    172177    } 
    173178    return; 
  • trunk/plagger/lib/Plagger/Plugin/Subscription/Bloglines.pm

    r210 r226  
    6969 
    7070        if ($self->conf->{fetch_meta}) { 
    71             # TODO: cache it! 
    72             $self->fetch_meta($context); 
     71            $self->{bloglines_meta} = $self->cache->get_callback( 
     72                'listsubs_meta', 
     73                sub { $self->fetch_meta($context) }, 
     74                '1 day', 
     75            ); 
    7376        } 
    7477    } 
     
    8386    my $subscription = $self->{bloglines}->listsubs(); 
    8487 
     88    my $meta; 
    8589    for my $folder ($subscription->folders) { 
    8690        my @feeds = $subscription->feeds_in_folder($folder->{BloglinesSubId}); 
    8791        for my $feed (@feeds) { 
    8892            # BloglinesSubId is different from bloglines:siteid. Don't use it 
    89             $self->{bloglines_meta}->{$feed->{htmlUrl}} = { 
     93            $meta->{$feed->{htmlUrl}} = { 
    9094                folder => $folder->{title}, 
    9195                xmlUrl => $feed->{xmlUrl}, 
     
    9397        } 
    9498    } 
     99 
     100    $meta; 
    95101} 
    96102