From f3da8ef4920ee4cd82cdde0c6791e153a2155533 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 20 Jul 2011 17:01:57 +0000 Subject: added feed aggregator for rhimport-dn diff --git a/debian/control b/debian/control index 1ad22d3..aa4b7a1 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Homepage: http://www.helsinki.at/ Package: rhimport Architecture: all -Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, perl, libdbd-mysql-perl, libgtk2-gladexml-perl, libdate-calc-perl +Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, perl, libdbd-mysql-perl, libgtk2-gladexml-perl, libdate-calc-perl, libxml-feed-perl Description: Radio Helsinki Import Tool rhimport is a small tool which can be used to import media files into the playout system namley Rivendell. diff --git a/rhimport-dn b/rhimport-dn index abcda30..e19f3b6 100755 --- a/rhimport-dn +++ b/rhimport-dn @@ -24,6 +24,11 @@ use strict; use DBI; use Date::Calc; +use XML::Feed; +use XML::Feed::Entry; +use XML::Feed::Content; +use XML::Feed::Enclosure; +use File::Fetch; use lib '/usr/local/share/rhimport/'; use rhimport; @@ -68,10 +73,35 @@ if($dropbox eq "") { exit 0; } -my $file = sprintf("dn%04d-%02d%02d-?.mp3", $yesterday[0], $yesterday[1], $yesterday[2]); -print "looking for file like: $file\n"; +my $y = sprintf("%04d-%02d-%02d", $yesterday[0], $yesterday[1], $yesterday[2]); +print "looking for files from date $y in RSS Feed\n"; +my $feed = XML::Feed->parse(URI->new('http://www.democracynow.org/podcast.xml')) + or die "Error fetching feed: " . XML::Feed->errstr; +my $file = ""; +for my $entry ($feed->entries) { + if($entry->enclosure && $entry->enclosure->type eq "audio/mpeg") { + my $summary = $entry->title . "\n\n" . $entry->summary->body . "\n\n" . $entry->link . "\n"; + + if($entry->id =~ /tag:democracynow.org,([0-9-]+):media\/mp3download\/[^\/]+/) { + next if($y ne $1); + + my $ff = File::Fetch->new(uri => $entry->enclosure->url); + print $1 . ": downloading " . $entry->enclosure->url . " (" . $entry->enclosure->length . " Bytes) .. "; + $file = $ff->fetch( to => '/tmp' ) or die $ff->error; + print "ok\n"; + + print "summary:\n" . $summary; + } + print "\n\n\n"; + } +} +($file ne "") or die "No Entry found for today!\n"; +(-e "$file") or die "file '$file' not found - donwload error?\n"; +print "will import $file to dropbox $dropbox (cart=$to_cart)\n\n"; + +exit 0; my $error_cb = sub { my ($text) = @_; @@ -81,12 +111,7 @@ my $error_cb = sub { $x =~ /^n/i; }; -#rhimport::check_key_file() or die "Import Key not found, use rhimport-create-id to create one\n"; - -#(-e "$file") or die "file '$file' not found\n"; -print "will import $file to dropbox $dropbox (cart=$to_cart)\n\n"; - -exit 0; +rhimport::check_key_file() or die "Import Key not found, use rhimport-create-id to create one\n"; my $ret; my $log; -- cgit v0.10.2