summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/xdcc_autoget.pl39
1 files changed, 36 insertions, 3 deletions
diff --git a/scripts/xdcc_autoget.pl b/scripts/xdcc_autoget.pl
index b7cef39..a21730a 100644
--- a/scripts/xdcc_autoget.pl
+++ b/scripts/xdcc_autoget.pl
@@ -34,7 +34,7 @@ use File::Copy;
use Irssi 20090331;
use vars qw($VERSION %IRSSI);
-$VERSION = 1.2;
+$VERSION = 1.3;
%IRSSI = (
name => "autoget",
description => "XDCC Autoget, for automated searching and downloading of xdcc packs",
@@ -516,12 +516,14 @@ sub ag_parseadd #parses add arguments for storage
}
unlink "/tmp/temp";
close(FILE);
+ &ag_getbots;
+ &ag_getterms;
}
sub ag_parserem #parses remove arguments for deletion from file
{
my ($file, @args) = @_;
- open(TEMP, ">>", "/tmp/temp");
+ open(TEMP, ">", "/tmp/temp");
foreach my $arg (@args)
{
Irssi::print "AG | removing term: " . $arg;
@@ -549,7 +551,7 @@ sub ag_parserem #parses remove arguments for deletion from file
copy($file, "/tmp/temp");
unlink "$file";
open(TEMP, "<", "/tmp/temp");
- open(SEARCHES, ">", $file);
+ open(FILE, ">", $file);
%hTmp = ();
while (my $sLine = <TEMP>) #remove duplicate lines
{
@@ -621,6 +623,8 @@ sub ag_run #main loop
if($runningflag == 0)
{
$runningflag = 1;
+ &ag_getbots;
+ &ag_getterms;
if($#bots < 0 or $#terms < 0) {Irssi::print "AG | No bots or no search terms added. Halting"; &ag_stop;}
else
{
@@ -666,6 +670,33 @@ sub ag_stop
$episode = 1;
}
+sub ag_restart
+{
+ Irssi::print "AG | Connection lost";
+ Irssi::signal_remove("dcc get receive", "ag_opendcc");
+ Irssi::signal_remove("message irc notice", "ag_getmsg");
+
+ foreach my $to (@totags)
+ {
+ Irssi::timeout_remove($to);
+ }
+ @totags = ();
+
+ ag_message("msg $bots[$botcounter] $cancelprefix");
+
+ if($runningflag == 1)
+ {
+ $runningflag = 0;
+ }
+ $msgflag = 1;
+ $termisepisodicflag = 0;
+ $formatflag = 1;
+ $reqpackflag = 0;
+ $downloadflag = 0;
+ $newpackflag = 1;
+ $dccflag = 0;
+ Irssi::signal_add("server connected", "ag_initserver");
+}
sub ag_reset
{
Irssi::settings_set_int("ag_next_delay", 10);
@@ -707,6 +738,8 @@ close(FINISHED);
&ag_init;
if ($initflag) {Irssi::signal_add("server connected", "ag_initserver");}
+Irssi::signal_add("server disconnected", "ag_restart");
+Irssi::signal_add("server lag disconnect", "ag_restart");
Irssi::signal_add("dcc closed", "ag_closedcc");
Irssi::signal_add("setup changed", "ag_setsettings");