/ Published in: Perl
Generates an RSS feed from Achewood's stuff.
Expand |
Embed | Plain Text
#!/usr/bin/perl -w use strict; use LWP::Simple; use XML::RSS; use HTML::TreeBuilder 3.0; use Date::Manip; my $rss = XML::RSS->new(version => '2.0'); $rss->channel( title => "Achewood", language => "en", description => "\"Achewood,\" like wormwood, was used by antebellum slaves in the production of \"achewater,\" a long-since outmoded and outlawed Southern beverage.\n\nDrinkers of achewater experienced hallucinations and euphoria, but the after-effects of the liquor produced a deep and lasting melancholy (hence its name).\n\nModern science has confirmed that achewood oil, the active ingredient in achewater, is a powerful depressant which causes irreversible neurological damage.\n\nAchewater is generally thought to have inspired many Southern folk songs and fables, such as \"The Story of Poor John Ritch,\" \"Sullivan's Bear and Dried Bird\" and \"I'm Following a Little Round Lord.\"", webmaster => "chris\@achewood.com", ttl => "300" ); $rss->skipDays( day => "Sunday", # day => "Monday", # day => "Tuesday", # day => "Wednesday", # day => "Thursday", # day => "Friday", day => "Saturday" ); my $url = "http://m.assetbar.com/achewood/"; my $tree = HTML::TreeBuilder->new_from_content(get($url)); my $element = $tree->look_down("_tag", "span", "class", "date"); my $date = UnixDate(ParseDate($element->as_text()), "%g"); $element = $tree->find("title"); my $title = $element->as_text(); $element = $tree->look_down("_tag", "img", "src", qr/(.*)/, "title", qr/(.*)/); my $image = "http://m.assetbar.com" . $element->attr_get_i("src"); my $alttext = $element->attr_get_i("title"); $tree->delete(); $rss->add_item( title => $title, description => "<![CDATA[<img src=\"$image\" title=\"$alttext\" />]]>", pubDate => $date ); $tree = HTML::TreeBuilder->new_from_content(get("http://www.achewood.com/")); my @elements = $tree->look_down("_tag", "td", "bgcolor", "\#ffffff", "align", "left", "cellpadding", "5", "colspan", "2"); my $status = $elements[2]->find("b")->as_text(); $elements[2]->find("b")->delete(); my $description = $elements[2]->as_text(); my $statusdate; if ($status =~ m/(\d+\/\d+)/) { $statusdate = $1 . "/2007"; } $rss->add_item( title => $status, description => $description, pubDate => UnixDate(ParseDate($statusdate), "%g"), );
You need to login to post a comment.
