diff --git a/sopel_modules/SpiceBot/Server.py b/sopel_modules/SpiceBot/Server.py index 9b8dafc..df1789d 100644 --- a/sopel_modules/SpiceBot/Server.py +++ b/sopel_modules/SpiceBot/Server.py @@ -10,10 +10,14 @@ from .Config import config as botconfig class BotServer(): """This Logs all server values of relevance'""" def __init__(self): + self.linenumber = 0 self.dict = { "host_connect": botconfig.core.host, "host": botconfig.core.host, } + self.isupport = { + "TARGMAX": {}, + } def __getattr__(self, name): ''' will only get called for undefined attributes ''' @@ -26,5 +30,37 @@ class BotServer(): def rpl_welcome(self, trigger): self.dict["host"] = str(trigger.sender).lower() + def parse_reply_isupport(self, trigger): + + # check against 005_Bounce + if trigger.args[-1] != 'are supported by this server': + return + + parameters = trigger.args[1:-1] + for param in parameters: + if '=' in param: + if param.startswith("TARGMAX"): + param = str(param).split('=')[1] + settings = str(param).split(',') + for setting in settings: + settingname = str(setting).split(':')[0] + if settingname.upper() in ['NOTICE', 'PRIVMSG']: + try: + value = str(setting).split(':')[1] or None + except IndexError: + value = None + if value: + if settingname.upper() == 'NOTICE': + botconfig.SpiceBot_OSD.notice = int(value) + elif settingname.upper() == 'PRIVMSG': + botconfig.SpiceBot_OSD.privmsg = int(value) + if settingname.upper() in ['KICK']: + try: + value = str(setting).split(':')[1] or None + except IndexError: + value = None + if value: + botconfig.SpiceBot_Kick.kick = int(value) + server = BotServer() diff --git a/sopel_modules/SpiceBot_Core_Processing/Server.py b/sopel_modules/SpiceBot_Core_Processing/Server.py index aa174d5..a633405 100644 --- a/sopel_modules/SpiceBot_Core_Processing/Server.py +++ b/sopel_modules/SpiceBot_Core_Processing/Server.py @@ -12,3 +12,11 @@ import sopel_modules.SpiceBot as SpiceBot @sopel.module.rule('.*') def server_name(bot, trigger): SpiceBot.server.rpl_welcome(trigger) + + +@sopel.module.event(SpiceBot.events.RPL_ISUPPORT) +@sopel.module.rule('.*') +def parse_event_005(bot, trigger): + SpiceBot.server.linenumber += 1 + bot.osd([str(SpiceBot.server.linenumber), str(trigger)], "deathbybandaid") + # SpiceBot.server.parse_reply_isupport(trigger)