Changeset 263

Show
Ignore:
Timestamp:
03/04/06 10:00:31
Author:
miyagawa
Message:

Yahoo360: Smart retry by clearning cookie

Files:

Legend:

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

    r262 r263  
    3535 
    3636    if ($mech->content =~ /mgb_login/) { 
    37         $self->login($mech) or return; 
     37        my $success; 
     38        eval { $success = $self->login($mech) }; 
     39 
     40        if ($@ && $@ =~ /persistent/) { 
     41            $context->log(error => "Login failed. Clear cookie and redo."); 
     42            $mech->cookie_jar->clear; 
     43            $mech->get($start); 
     44            sleep 3; 
     45            eval { $success = $self->login($mech) }; 
     46        } 
     47 
     48        return unless $success; 
    3849    } 
    3950 
     
    135146 
    136147sub login { 
    137     my($self, $mech) = @_; 
    138  
    139     eval {  
    140         $mech->submit_form( 
    141             fields => { 
    142                 login  => $self->conf->{username}, 
    143                 passwd => $self->conf->{password}, 
    144                 '.persistent' => 'y', 
    145             }, 
    146         ); 
    147     }; 
    148  
    149     if ($@) { 
    150         Plagger->context->log(error => "Login to Yahoo! 360 failed: $@"); 
    151         return; 
    152     } 
     148    my($self, $mech, $retry) = @_; 
     149 
     150    $mech->submit_form( 
     151        fields => { 
     152            login  => $self->conf->{username}, 
     153            passwd => $self->conf->{password}, 
     154            '.persistent' => 'y', 
     155        }, 
     156    ); 
    153157 
    154158    while ($mech->content =~ m!<span class="error">!) {