Base: Add simple_get() function
[videosite.git] / videosite / FileGetter.pm
index a01c285..f7c680e 100644 (file)
@@ -1,10 +1,15 @@
-package FileGetter;
+# (c) 2007 by Ralf Ertzinger <ralf@camperquake.de>
+# licensed under GNU GPL v2
+#
+# A getter which will download the media to a local file storage
+#
 
-use GetterBase;
-@ISA = qw(GetterBase);
+package videosite::FileGetter;
+
+use videosite::GetterBase;
+@ISA = qw(videosite::GetterBase);
 
 use strict;
-use LWP::Simple qw(!get);
 use File::Basename;
 
 sub new {
@@ -25,9 +30,11 @@ sub get {
     my $video = shift;
     my $dlfile;
     my $dirname;
+    my $ua;
+    my $res;
 
     $dlfile = sprintf($self->_getval('FILEPATTERN'),
-        $self->_encode($video->{'TYPE'}),
+        $self->_encode($video->{'SOURCE'}),
         $self->_encode($video->{'ID'}),
         $self->_encode($video->{'TITLE'}),
         $self->_encode($video->{'DLURL'}),
@@ -39,10 +46,16 @@ sub get {
         return 0;
     }
 
+    if (exists($video->{'CONNECTOR'})) {
+        $self->selectconn($video->{'CONNECTOR'});
+    }
+    $ua = $self->ua();
+
     $self->debug('Going to download %s to %s', $video->{'DLURL'}, $dlfile);
 
-    if (200 != LWP::Simple::mirror($video->{'DLURL'}, $dlfile)) {
-        $self->error('Could not download %s to %s', $video->{'DLURL'}, $dlfile);
+    $res = $ua->mirror($video->{'DLURL'}, $dlfile);
+    if (!$res->is_success()) {
+        $self->error('Could not download %s to %s (%s)', $video->{'DLURL'}, $dlfile, $res->code());
         return 0;
     }