IRCP

- information gathering tool for irc servers
git clone git://git.acid.vegas/IRCP.git
Log | Files | Refs | Archive | README | LICENSE

commit d8901ca1ca757bb19cc16a2179fd437a92ef3c21
parent 0df1e2df9c08c437af166a4caa98c537594cb65d
Author: acidvegas <acid.vegas@acid.vegas>
Date: Sun, 18 Jun 2023 13:44:32 -0400

The 439 (ERR_TARGETTOOFAST) handles nicks & channels now

Diffstat:
Mircp.py | 14++++++++------

1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/ircp.py b/ircp.py
@@ -346,7 +346,7 @@ class probe:
 						self.channels['users'][chan] = users
 				elif event == '323': # RPL_LISTEND
 					if self.channels['all']:
-						del self.loops['init']
+						del self.loops['init'] # TODO: do we need to cancle this first?
 						debug(self.display + '\033[36mLIST\033[0m found \033[93m{0}\033[0m channel(s)'.format(str(len(self.channels['all']))))
 						self.loops['chan']  = asyncio.create_task(self.loop_channels())
 						self.loops['nick']  = asyncio.create_task(self.loop_nick())
@@ -388,14 +388,16 @@ class probe:
 					self.nickanme = rndnick()
 					await self.raw('NICK ' + self.nickname)
 				elif event == '439' and len(args) >= 5: # ERR_TARGETTOOFAST
-					chan = args[3]
-					msg  = ' '.join(args[4:])[1:]
-					self.channels['all'].append(chan)
+					target = args[3]
+					msg    = ' '.join(args[4:])[1:]
+					if target[:1] in ('#','&'):
+						self.channels['all'].append(chan)
+					else:
+						self.nicks['check'].append(nick)
 					if 'Target change too fast' in msg and len(args) >= 11:
 						seconds = args[10]
 						if seconds.isdigit():
-							seconds = int(seconds)
-							self.jthrottle = throttle.seconds if seconds > throttle.seconds else seconds
+							self.jthrottle = throttle.seconds if int(seconds) > throttle.seconds else int(seconds)
 					error(self.display + '\033[31merror\033[0m - delay found', msg)
 				elif event == '465': # ERR_YOUREBANNEDCREEP
 					check = [check for check in bad.error if check in line.lower()]