fix quoting in AsyncWgetFileGetter again
[videosite.git] / videosite-dl.pl
index 3a711f1..4222f78 100755 (executable)
@@ -6,6 +6,9 @@ use File::Spec;
 use File::Basename;
 use Module::Load;
 use Cwd qw(realpath);
+use Carp;
+
+$SIG{ __DIE__ } = sub { Carp::confess( @_ ) };
 
 my $info = 0;
 my $debug = 0;
@@ -15,6 +18,7 @@ my %config = (
     'plugin.youtube.QUALITY' => 'hd',
     'plugin.filegetter.FILEPATTERN' => './%3$s.flv',
 );
+my @options;
 
 sub link_callback {
     my $m = shift;
@@ -23,27 +27,23 @@ sub link_callback {
         foreach (keys(%{$m})) {
             printf("%s: %s\n", $_, defined($m->{$_})?$m->{$_}:'(undef)');
         }
-        return 0;
+        return 1;
     } else {
         print("Downloading $m->{'TITLE'}\n");
-        return 1;
+        return 0;
     }
 }
 
 
-GetOptions("i" => \$info, "d" => \$debug);
+GetOptions("i" => \$info, "d" => \$debug, "o=s" => \@options);
+%config = (%config, map { split(/=/, $_, 2) } @options);
 
 push(@INC, dirname(realpath($0)));
 load 'libvideosite';
 
 unless(libvideosite::register_api({
-    config_init => sub {},
-    config_save => sub {},
-    config_get => sub { return $config{join(".", @{$_[0]})} },
-    config_set => sub { $config{join(".", @{$_[0]})} = $_[1] },
-    config_has => sub { exists($config{join(".", @{$_[0]})}) },
-    config_del => sub { delete($config{join(".", @{$_[0]})}) },
     link_callback => \&link_callback,
+    _config_default => sub { return \%config },
     _debug => sub { return $debug },
 })) {
     die("Error registering API: $libvideosite::error");
@@ -57,6 +57,7 @@ foreach (@ARGV) {
     printf("Handling %s...\n", $_);
     libvideosite::check_for_link({
         message => $_,
-        ewpf => sub { print @_, "\n" },
+        io => sub { print @_, "\n" },
+        window => "",
     });
 }