diff options
| author | Alex Checca | 2015-11-21 17:09:50 -0500 | 
|---|---|---|
| committer | Alex Checca | 2015-11-21 17:09:50 -0500 | 
| commit | 1a5f6f3fc29a03ca2a5fcf526713c51a9c0110a0 (patch) | |
| tree | d4631fbed36e8481b118ff5c7b9bbbe5b9c69125 | |
| parent | 2605878778636421276fe85cd9a2045d125546bd (diff) | |
| download | scripts.irssi.org-1a5f6f3fc29a03ca2a5fcf526713c51a9c0110a0.tar.bz2 | |
add functionality to deal with disconnects, fix issue with removing terms
| -rw-r--r-- | scripts/xdcc_autoget.pl | 39 | 
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"); | 
