X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=videosite-dl.pl;h=15e1bcabec85c8879061566f3849997a6ad66b98;hb=828bd4a062beaea4f43b4d161803b6152e6b65b2;hp=642b162a2d430856e98e08404fd30039467fbb88;hpb=ed3e6b64d7a09f7cb78c5f0d6596c62b65c119ec;p=videosite.git diff --git a/videosite-dl.pl b/videosite-dl.pl index 642b162..15e1bca 100755 --- a/videosite-dl.pl +++ b/videosite-dl.pl @@ -24,13 +24,13 @@ sub ploader { foreach $p (@list) { $p =~ s/\.pm$//; - eval qq{ require $p; }; + eval qq{ require videosite::$p; }; if ($@) { print("Failed to load plugin: $@"); next; } - $g = eval $p.q{->new();}; + $g = eval qq{ videosite::$p->new();}; if ($@) { print("Failed to instanciate: $@"); delete($INC{$p}); @@ -55,10 +55,15 @@ my $f; my $m; my @g; my $bp; +my $info = 0; +my $debug = 0; + +GetOptions("i" => \$info, "d" => \$debug); # This is some dark magic to find out our real base directory, # where we hope to find our plugins. $bp = File::Spec->catdir(dirname(realpath($0)), 'videosite'); +unshift(@INC, dirname(realpath($0))); @g = ploader($bp, '.*Grabber\.pm$', 'grabber'); ($f) = ploader($bp, '^FileGetter\.pm$', 'getter'); @@ -68,14 +73,28 @@ unless(@g and defined($f)) { exit 1; } +foreach (@g, $f) { + $_->setio(sub { printf(@_); print("\n"); } ); + + if ($debug) { + $_->setdebug(1); + } +} + $f->setval('FILEPATTERN', './%3$s' . $ext); foreach (@ARGV) { foreach $y (@g) { ($m, undef) = $y->get($_); if (defined($m)) { - print("Downloading $m->{'TITLE'}\n"); - $f->get($m); + if ($info) { + foreach (keys(%{$m})) { + printf("%s: %s\n", $_, defined($m->{$_})?$m->{$_}:'(undef)'); + } + } else { + print("Downloading $m->{'TITLE'}\n"); + $f->get($m); + } } } }