Advertisement
Guest User

AllGeeknightsRss.pl

a guest
Dec 19th, 2012
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.47 KB | None | 0 0
  1. # usr/bin/perl
  2. # twitter.com/lalanl
  3.  
  4. use strict;
  5. use LWP::Simple;
  6.  
  7. my $ua = new LWP::UserAgent;
  8. $ua->agent("Mozilla/5.0 (Windows NT 6.1; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 ");
  9.  
  10. my $n = 1;
  11. my $more = 1;
  12. my $date = localtime(time);
  13. $date = "$date -0600";
  14. print "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<rss xmlns:atom=\"http://www.w3.org/2005/Atom\" version=\"2.0\">\n<channel><title>Geeknights Archive</title><link>http://frontrowcrew.com/</link><description>All the episodes.</description>
  15. <atom:link href=\"/\" rel=\"self\"></atom:link><language>en</language><lastBuildDate>$date</lastBuildDate>";
  16.  
  17. while($more eq 1){
  18.     my $url = "http://www.frontrowcrew.com/geeknights?page=$n";
  19.     my $req = new HTTP::Request 'GET' => $url;
  20.     $req->header('Accept' => 'text/html');
  21.     my $response = $ua->request($req);
  22.     my $html = $response->decoded_content;
  23.  
  24.     my @lines = split(/\n/, $html);
  25.     my @links = grep(/<a.*href=.*>/, @lines);
  26.    
  27.     $more = 0;
  28.     foreach my $l (@links){
  29.         $l =~ /<a.*href="([\s\S]+?)".*>/;
  30.         my $link = $1;
  31.         $l =~ /<a.*href.*>([\s\S]+?)<\/a>/;
  32.         my $title = $1;
  33.  
  34.         if(index($link, '/geeknights/') == 0 && index($title, '#') < 0 && index($title, '/geeknights/') < 0){
  35.             print "<item><title>$title</title>";
  36.             $more = 1;
  37.         }
  38.         if(index($link, '.mp3') != -1){
  39.             print "<link>$link</link><enclosure url=\"$link\" length=\"None\" type=\"audio/mpeg\"></enclosure></item>\n";
  40.             $more = 1;
  41.         }
  42.     }
  43.     $n++;
  44. }
  45.  
  46. print "</channel></rss>";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement