]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
add functionality to deal with disconnects, fix issue with removing terms
authorAlex Checca <redacted>
Sat, 21 Nov 2015 22:09:50 +0000 (17:09 -0500)
committerAlex Checca <redacted>
Sat, 21 Nov 2015 22:09:50 +0000 (17:09 -0500)
scripts/xdcc_autoget.pl

index b7cef39898ee00b4910b2b37293846300653a46e..a21730ae273436a905e7c98c08b1d265edd9a4a9 100644 (file)
@@ -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");
 
git clone https://git.99rst.org/PROJECT