From b5503d23d732604a8f3861861bcb9b17968d8218 Mon Sep 17 00:00:00 2001 From: adator <85586985+adator85@users.noreply.github.com> Date: Sat, 21 Sep 2024 20:22:09 +0200 Subject: [PATCH] V5.2.9 --- core/irc.py | 24 ++++++++++++++++++++++++ mods/mod_defender.py | 6 ++++++ 2 files changed, 30 insertions(+) diff --git a/core/irc.py b/core/irc.py index db194f0..45c0333 100644 --- a/core/irc.py +++ b/core/irc.py @@ -655,6 +655,30 @@ class Irc: # self.Base.create_thread(self.abuseipdb_scan, (cmd[7], )) pass + case 'SQUIT': + # ['@msgid=QOEolbRxdhpVW5c8qLkbAU;time=2024-09-21T17:33:16.547Z', 'SQUIT', 'defender.deb.biz.st', ':Connection', 'closed'] + server_hostname = interm_response[1] + uid_to_delete = '' + for s_user in self.User.UID_DB: + if s_user.hostname == server_hostname and 'S' in s_user.umodes: + uid_to_delete = s_user.uid + + self.User.delete(uid_to_delete) + self.Channel.delete_user_from_all_channel(uid_to_delete) + + case 'SJOIN': + # If Server Join channels + # [':11Z', 'SJOIN', '1726940687', '#welcome', '+', ':11ZAAAAAB'] + channel_joined = original_response[3] + server_uid = self.Base.clean_uid(original_response[5]) + + self.Channel.insert( + self.Channel.ChannelModel( + name=channel_joined, + uids=[server_uid] + ) + ) + case 'REPUTATION': # :001 REPUTATION 91.168.141.239 118 try: diff --git a/mods/mod_defender.py b/mods/mod_defender.py index ecfab82..132a8a0 100644 --- a/mods/mod_defender.py +++ b/mods/mod_defender.py @@ -1624,6 +1624,11 @@ class Defender(): try: nickoruid = cmd[1] UserObject = self.User.get_User(nickoruid) + channels: list = [] + for chan in self.Channel.UID_CHANNEL_DB: + for uid_in_chan in chan.uids: + if self.Base.clean_uid(uid_in_chan) == UserObject.uid: + channels.append(chan.name) if not UserObject is None: self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : UID : {UserObject.uid}') @@ -1638,6 +1643,7 @@ class Defender(): self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : WebWebsocket : {UserObject.isWebsocket}') self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : REPUTATION : {UserObject.score_connexion}') self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : MODES : {UserObject.umodes}') + self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : CHANNELS : {channels}') self.Irc.send2socket(f':{dnickname} NOTICE {fromuser} : CONNECTION TIME : {UserObject.connexion_datetime}') else: self.Irc.send2socket(f":{dnickname} NOTICE {fromuser} : This user {nickoruid} doesn't exist")