blob: 0a960916035b2547d7fee137b968f5d797530cea (
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
|
package nzbget::cancel;
use strict;
use Apache2::Const -compile => qw(OK REDIRECT);
use CGI qw(:standard);
use local::nzbget;
use local::db;
use local::user;
use File::Path;
use config;
sub handler
{
my $user = new local::user(%ENV);
my $del_id = param('id');
my ($download) = local::db::download->retrieve($del_id) or die 'Error in cancel';
die "Not allowed" unless (($download->owner->owner_id() eq $user->get_id()) or ($user->is_admin()));
my $basedir = $config::config{files_dir} or die 'Missing files_dir in config';
my $cli = new local::nzbget;
my $row = $cli->send_request('listgroups') or die "Can't connect to nzbget";
foreach my $value ( @$row)
{
my ($dl) = local::db::download->retrieve($value->{NZBNicename}) or die ' Error in groups';
if ($value->{NZBNicename} == $del_id)
{
my $status = $cli->send_request('editqueue','GroupDelete',0,"",[$value->{LastID}]) or die "Can't connect to nzbget";
sleep 1;
File::Path::rmtree($basedir.'/'.$dl->category->name.'/'.$dl->download_id);
$user->obj->quota_used($user->obj->quota_used - $dl->size);
$user->obj->update;
my @seens = local::db::seen->search(download=>$del_id);
map {$_->delete()} @seens;
$dl->delete();
}
}
print CGI::redirect('download');
return Apache2::Const::REDIRECT;
}
1;
|