summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Checca2015-12-17 19:41:56 -0500
committerAlex Checca2015-12-17 19:41:56 -0500
commita3e9643fe11e062e963822f9f4ec3ccd2fc0b75d (patch)
tree7c26db0ecd91896777e75df9fb32311dd954f4a0
parentb0124853072d65baff3708dfd1df9a46c119d0b5 (diff)
downloadscripts.irssi.org-a3e9643fe11e062e963822f9f4ec3ccd2fc0b75d.tar.bz2
workaround for Irssi issue #836
-rw-r--r--scripts/xdcc_autoget.pl18
1 files changed, 11 insertions, 7 deletions
diff --git a/scripts/xdcc_autoget.pl b/scripts/xdcc_autoget.pl
index 19d1d56..91703d2 100644
--- a/scripts/xdcc_autoget.pl
+++ b/scripts/xdcc_autoget.pl
@@ -38,7 +38,7 @@ use File::Copy;
use Irssi 20090331;
use vars qw($VERSION %IRSSI);
-$VERSION = 1.5;
+$VERSION = 1.6;
%IRSSI = (
name => "autoget",
description => "XDCC Autoget, for automated searching and downloading of xdcc packs",
@@ -302,7 +302,7 @@ sub ag_packrequest #sends the xdcc send request, and retries on failure
if (!$reqpackflag)
{
$reqpackflag = 1;
- Irssi::signal_add("dcc created", "ag_opendcc"); #init DCC recieve init flag
+ Irssi::signal_add("dcc request", "ag_opendcc"); #init DCC recieve init flag
$statusbarmessage = "Getting pack #$packs[$packcounter] on $bots[$botcounter]";
ag_message("msg $bots[$botcounter] $sendprefix $packs[$packcounter]");
push(@totags, Irssi::timeout_add_once($botdelay * 1000, sub { if (!$downloadflag) { &ag_packrequest; } } , []));
@@ -311,6 +311,7 @@ sub ag_packrequest #sends the xdcc send request, and retries on failure
sub ag_opendcc #runs on DCC recieve init
{
+ &Irssi::signal_continue;
my ($gdcc) = @_; #current pack
my $botname = $gdcc->{'nick'};
my $filename = $gdcc->{'arg'};
@@ -320,7 +321,7 @@ sub ag_opendcc #runs on DCC recieve init
if ($botname eq $bots[$botcounter]) #if it's our bot, let user know, and stop any further AG pack requests until finished
{
Irssi::signal_add("dcc destroyed", "ag_closedcc");
- Irssi::signal_remove("dcc created", "ag_opendcc"); #stops any suplicate sends (there should only ever be one)
+ Irssi::signal_remove("dcc request", "ag_opendcc"); #stops any suplicate sends (there should only ever be one)
Irssi::signal_remove("message irc notice", "ag_getmsg");
$getmsgflag = 0;
@@ -332,8 +333,11 @@ sub ag_opendcc #runs on DCC recieve init
{
if ($n eq $gdcc->{'arg'}) #if file already downloaded, cancel
{
+ Irssi::signal_remove("dcc destroyed", "ag_closedcc");
$gdcc->close;
- &ag_stop;
+ $gdcc->{'skipped'} = $gdcc->{'size'};
+ $gdcc->{'transfd'} = $gdcc->{'size'};
+ ag_closedcc($gdcc);
}
last if ($n eq $gdcc->{'arg'});
}
@@ -429,7 +433,7 @@ sub ag_closedcc
{
Irssi::signal_remove("dcc destroyed", "ag_opendcc");
$reqpackflag = 0;
-# if ($dccflag == 0) {Irssi::signal_add("dcc created", "ag_opendcc");} #if so, reinits DCC get signal for the next pack
+# if ($dccflag == 0) {Irssi::signal_add("dcc request", "ag_opendcc");} #if so, reinits DCC get signal for the next pack
$dccflag = 1;
&ag_remtimeouts;
@@ -665,7 +669,7 @@ sub ag_run #main loop
sub ag_stop
{
- Irssi::signal_remove("dcc created", "ag_opendcc");
+ Irssi::signal_remove("dcc request", "ag_opendcc");
Irssi::signal_remove("message irc notice", "ag_getmsg");
$getmsgflag = 0;
@@ -702,7 +706,7 @@ sub ag_stop
sub ag_restart
{
$statusbarmessage = "No connection";
- Irssi::signal_remove("dcc created", "ag_opendcc");
+ Irssi::signal_remove("dcc request", "ag_opendcc");
Irssi::signal_remove("message irc notice", "ag_getmsg");
$getmsgflag = 0;