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/cancel.pm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 nzbget/cancel.pm (limited to 'nzbget/cancel.pm') diff --git a/nzbget/cancel.pm b/nzbget/cancel.pm new file mode 100644 index 0000000..556cc22 --- /dev/null +++ b/nzbget/cancel.pm @@ -0,0 +1,43 @@ +package nzbget::cancel; + +use strict; +use Apache2::Const -compile => qw(OK REDIRECT); +use CGI qw(:standard); +use CGI::Carp 'fatalsToBrowser'; +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" if not $download->owner->owner_id() eq $user->get_id(); + 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 nubget"; + 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; -- cgit v1.2.3