Changeset 577
- Timestamp:
- 12/23/06 07:17:55 (3 years ago)
- Files:
-
- 1 modified
-
scrapers/trunk/RSS.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
scrapers/trunk/RSS.pm
r576 r577 113 113 114 114 my $default = 'ISO-8859-1'; 115 $charset = $default unless defined$charset;115 $charset = $default unless $charset; 116 116 return $charset; 117 117 } … … 140 140 if ($response->code == RC_NOT_MODIFIED) { 141 141 my $name = $subs[-2]; 142 return lock_retrieve(mirror_file($url, type => $name)); 143 } else { 144 die $response->status_line unless $response->is_success; 142 my $cache = mirror_file($url, type => $name); 143 return lock_retrieve($cache) if -f $cache; 145 144 146 my $content = read_file($mirror, ':raw'); 147 my $charset = charset($response, $content); 148 $content = decode($charset, $content); 145 # Woops, got mirrored but not cached 146 unlink $mirror; 147 $response = $ua->mirror($url, $mirror); 148 } 149 149 150 my (%cached, $ret); 151 while (@subs) { 152 (my $name, my $sub, @subs) = @subs; 153 $ret = $cached{$name} = $sub->($content, %cached); 154 lock_store($ret, mirror_file($url, type => $name)); 155 } 156 157 return $ret; 158 } 150 die $response->status_line unless $response->is_success; 151 152 my $content = read_file($mirror, ':raw'); 153 my $charset = charset($response, $content); 154 $content = decode($charset, $content); 155 156 my (%cached, $ret); 157 while (@subs) { 158 (my $name, my $sub, @subs) = @subs; 159 $ret = $cached{$name} = $sub->($content, %cached); 160 lock_store($ret, mirror_file($url, type => $name)); 161 } 162 163 return $ret; 159 164 } 160 165
