Changeset 396

Show
Ignore:
Timestamp:
03/14/06 19:02:27
Author:
miyagawa
Message:

Support FeedBurner? ads. Fixes #130

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plagger/lib/Plagger/Plugin/Filter/StripRSSAd.pm

    r394 r396  
    1313sub update { 
    1414    my($self, $context, $args) = @_; 
    15     my $body = $self->filter($args->{entry}->body); 
     15    my $body = $self->filter($args->{entry}->body, $args->{entry}->link); 
    1616    $args->{entry}->body($body); 
    1717} 
    1818 
    1919sub filter { 
    20     my($self, $body) = @_; 
     20    my($self, $body, $link) = @_; 
    2121 
    2222    # rssad.jp 
    2323    my $count = $body =~ s!<br clear="all" /><a href="http://rss\.rssad\.jp/rss/ad/.*?" target="_blank".*?><img .*? src="http://rss\.rssad\.jp/rss/img/.*?" border="0"/></a><br.*?>!!; 
    24     Plagger->context->log(debug => "Stripped rssad.jp ad") if $count; 
     24    Plagger->context->log(debug => "Stripped rssad.jp ad on $link") if $count; 
    2525 
    2626    # plaza.rakuten.co.jp 
    2727    $count = $body =~ s!<br clear?=all /><br><SMALL>\n(?:<SCRIPT LANGUAGE="Javascript">\n<\!--\nfunction random\(\).*?infoseek.*?RssPlaza.*</SCRIPT>)?\n<NOSCRIPT>.*?infoseek.*?RssPlaza.*?</NOSCRIPT>\n</SMALL>!!s; 
    28     Plagger->context->log(debug => "Stripped plaza.rakuten ad") if $count; 
     28    Plagger->context->log(debug => "Stripped plaza.rakuten ad on $link") if $count; 
    2929 
    3030    # Google AdSense for Feeds 
     
    3434    $count += $body =~ s!<table [^>]*>\n\s*(?:<tr>\n\s*<td><(?:defanged-)?span[^>]*> <br[^>]*></(?:defanged-)?span></td>\n\s*</tr>\s*\n\s*)?<tr>\n\s*<td><a href="http://imageads\.googleadservices\.com/pagead/imgclick/[^"]*"[^>]*>\n<img [^>]* src="http://imageads\.googleadservices\.com/pagead/ads\?[^"]*" / ?></a></td>\n\s*</tr>\n\s*<tr>\n\s*<td><div align="right">(?:<font [^>]*>)?<a href="http://www\.google\.com/ads_by_google\.html" [^>]*>Ads by Google</a>(?:</font>)?</div></td>\n\s*</tr>\n\s*</table>!!s; 
    3535 
    36     Plagger->context->log(debug => "Stripped Google AdSense for feeds") if $count; 
     36    Plagger->context->log(debug => "Stripped Google AdSense for feeds on $link") if $count; 
    3737 
    3838    # Pheedo ads 
    3939    $count = $body =~ s!<br /><br />\n<a href="http://www\.pheedo\.com/click\.phdo\?feedUrl=.*?"*?><img border="0" src="http://www\.pheedo\.com/img\.phdo\?feedUrl=.*?" /></a>!!; 
    40     Plagger->context->log(debug => "Stripped Pheedo Ads") if $count; 
     40    Plagger->context->log(debug => "Stripped Pheedo Ads on $link") if $count; 
     41 
     42    # FeedBurner ads 
     43    $count = $body =~ s!<p><a href="http://feeds\.feedburner\.com/~a/\w+\?a=\w+"[^>]*><img src="http://feeds\.feedburner\.com/~a/\w+\?i=\w+" border="0"></img></a></p>!!; 
     44    Plagger->context->log(debug => "Stripped FeedBurner Ads on $link") if $count; 
    4145 
    4246    $body;