summaryrefslogtreecommitdiff
path: root/enqueue.pl
blob: 27c13ae75063721626e1db750176e2de2ffb31ae (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
#!/usr/bin/perl
use strict;
use CGI qw(:standard);
use CGI::Carp 'fatalsToBrowser';
use local::db;
use local::nzbget;
use utf8;

use local::user;
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>/;
$size = 0;
my $download = local::db::download->insert({owner=>$user->get_id(),name=>param('name'),category=>$cat->category_id(),description=>param('title'),size=>$size});
use LWP::Simple;
my $nzb = get(param('url'));
die "Couldn't get ".param('url') unless defined $nzb;
use MIME::Base64;
$nzb = encode_base64($nzb);
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->value)
{
       print CGI::redirect('/cgi-bin/nzbget/groups.pl'); 
} else {
	print header;
        print start_html('nzbget enqueue error');
        print 'Error';
        print end_html();
}