From d26fa8c1e0886c813de5364ee6570c860c6ce12c Mon Sep 17 00:00:00 2001 From: Othmar Gsenger Date: Thu, 31 Mar 2011 19:05:23 +0000 Subject: hopfully repaired this after backup loss --- nzbget/enqueue.pm | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 nzbget/enqueue.pm (limited to 'nzbget/enqueue.pm') diff --git a/nzbget/enqueue.pm b/nzbget/enqueue.pm new file mode 100644 index 0000000..e786f38 --- /dev/null +++ b/nzbget/enqueue.pm @@ -0,0 +1,59 @@ +package nzbget::enqueue; +use strict; +use Apache2::Const -compile => qw(OK REDIRECT); +use CGI qw(:standard); +use CGI::Carp 'fatalsToBrowser'; +use local::db; +use local::nzbget; +use utf8; +use LWP::Simple; + +use local::user; + +sub handler +{ + my $user = new local::user(%ENV); + my $nzbget = new local::nzbget; + die "Kein name angegeben" if not param('name'); + + die 'Kein freier Speicher' if $user->obj->quota_used>$user->obj->quoata; + + my $cat = local::db::category->retrieve(name=>param('cat')); + die "Ungültige category" if not $cat; + + my $category = $cat->name(); + + # my ($size) = param('description') =~ m/(.*)<\/b>/; + my $size = 0; + my $nzb; + my $title = param('title'); + if (param('url')) + { + $nzb = get(param('url')); + die "Couldn't get ".param('url') unless $nzb; + } elsif ($title = param('file')) { + my $upload_filehandle = upload("file"); + while ( <$upload_filehandle> ) + { + $nzb.=$_; + } + } + die "Could not get nzb" if not $nzb; + use MIME::Base64; + $nzb = encode_base64($nzb); + my $download = local::db::download->insert({owner=>$user->get_id(),name=>param('name'),category=>$cat->category_id(),description=>$title,size=>$size}); + my $resp = $nzbget->send_request('append',RPC::XML::string->new($download->download_id()),RPC::XML::string->new($category),RPC::XML::boolean->new(0),RPC::XML::string->new($nzb)); + + if ($resp) + { + print CGI::redirect('download'); + return Apache2::Const::REDIRECT; + } else { + print header; + print start_html('nzbget enqueue error'); + print 'Error'; + print end_html(); + return Apache2::Const::OK; + } +} +1; -- cgit v1.2.3