blob: f0c81270b200aee5481d1246c2a126a2b01508c4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
package nzbget::enqueue;
use strict;
use Apache2::Const -compile => qw(OK REDIRECT);
use CGI qw(:standard);
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>(.*)<\/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;
|