From 20684339d373707827ca87d0e1dda626ee88e3a5 Mon Sep 17 00:00:00 2001 From: adator85 <85586985+adator85@users.noreply.github.com> Date: Tue, 20 Feb 2024 01:10:54 +0100 Subject: [PATCH] Fix KeyError when a user change nickname --- core/exemple_configuration.py | 2 +- mods/mod_defender.py | 29 ++++++++++++++++------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/core/exemple_configuration.py b/core/exemple_configuration.py index 7e929e5..99d3ea4 100644 --- a/core/exemple_configuration.py +++ b/core/exemple_configuration.py @@ -6,7 +6,7 @@ import os class Config: - DEFENDER_VERSION = '1.1.0' # MAJOR.MINOR.BATCH + DEFENDER_VERSION = '3.2.2' # MAJOR.MINOR.BATCH DEFENDER_DB_PATH = 'db' + os.sep # Séparateur en fonction de l'OS DEFENDER_DB_NAME = 'defender' # Le nom de la base de données principale SERVICE_NAME = 'defender' # Le nom du service diff --git a/mods/mod_defender.py b/mods/mod_defender.py index fa16f14..51b9be9 100644 --- a/mods/mod_defender.py +++ b/mods/mod_defender.py @@ -738,21 +738,24 @@ class Defender(): case 'NICK': # :0010BS24L NICK [NEWNICK] 1697917711 # Changement de nickname - cmd.pop(0) - uid = str(cmd[0]).replace(':','') - oldnick = self.db_reputation[uid]['nickname'] - newnickname = cmd[2] - - jail_salon = self.Config.SALON_JAIL - service_id = self.Config.SERVICE_ID + try: + cmd.pop(0) + uid = str(cmd[0]).replace(':','') + oldnick = self.db_reputation[uid]['nickname'] + newnickname = cmd[2] - self.update_db_reputation(uid, newnickname) + jail_salon = self.Config.SALON_JAIL + service_id = self.Config.SERVICE_ID - if uid in self.db_reputation: - for chan in self.Irc.db_chan: - if chan != jail_salon: - self.Irc.send2socket(f":{service_id} MODE {chan} -b {oldnick}!*@*") - self.Irc.send2socket(f":{service_id} MODE {chan} +b {newnickname}!*@*") + self.update_db_reputation(uid, newnickname) + + if uid in self.db_reputation: + for chan in self.Irc.db_chan: + if chan != jail_salon: + self.Irc.send2socket(f":{service_id} MODE {chan} -b {oldnick}!*@*") + self.Irc.send2socket(f":{service_id} MODE {chan} +b {newnickname}!*@*") + except KeyError as ke: + self.Irc.debug(f'cmd - NICK - KeyError: {ke}') case 'QUIT': # :001N1WD7L QUIT :Quit: free_znc_1