def on_pubmsg(self, serv, ev): handle = irclib.nm_to_n(ev.source()) canal = ev.target() message = ev.arguments()[0] utils.logs(handle, message) if message.lower() == "test": words = ["abilité", "able", "acelle", "acé", "acée", "acées", "age", "ages", "ai", "aient", "ais", "ait", "ament", "amentaire", "amentaires", "aments", "ant", "as", "asse", "assent", "asses", "assiez", "assions", "ateur", "ateurs", "atrice", "atrices", "âmes", "ât", "âtes", "e", "ent", "er", "era", "erai", "eraient", "erais", "erait", "eras", "erez", "eriez", "erions", "erons", "eront", "eur", "eurs", "èrent", "iculaire", "icule", "icules", "iez", "imonial", "imoniale", "imoniales", "imoniaux", "ions", "ologie", "on", "ons", "ostérone"] wnb = len(words) add = words[randint(0,wnb-1)] serv.privmsg(canal, add) if re.match(r'^wtf_*', handle.lower()) is None: self.mods[ModStat]['instance'].update_counts(handle) if handle in self.admin: if '!reload' in message: custom_message = utils.extract_message(message, '!reload') self.check_reload(serv, canal, handle, custom_message) if '!enable' in message: custom_message = utils.extract_message(message, '!enable') self.enable(serv, canal, handle, custom_message, True) if '!disable' in message: custom_message = utils.extract_message(message, '!disable') self.enable(serv, canal, handle, custom_message, False) for mod, value in self.mods.items(): if value['cmd'] == message or re.match(r'^' + value['cmd'] + " ", message) is not None: if not self.check_flood(serv, canal, handle): if self.mods[mod]['enabled']: custom_message = utils.extract_message(message, value['cmd']) self.mods[mod]['instance'].execute(serv, canal, handle, custom_message) else: serv.privmsg(canal, "Disabled")
def on_pubmsg(self, serv, ev): handle = irclib.nm_to_n(ev.source()) canal = ev.target() message = ev.arguments()[0] utils.logs(message) if handle in self.admin: if '!reload' in message: custom_message = utils.extract_message(message, '!reload') self.check_reload(serv, canal, handle, custom_message) if '!enable' in message: custom_message = utils.extract_message(message, '!enable') self.enable(serv, canal, handle, custom_message, True) if '!disable' in message: custom_message = utils.extract_message(message, '!disable') self.enable(serv, canal, handle, custom_message, False) for mod, value in self.mods.items(): if value['cmd'] == message or re.match(r'^' + value['cmd'] + " ", message) is not None: if not self.check_flood(serv, canal, handle): if self.mods[mod]['enabled']: custom_message = utils.extract_message(message, value['cmd']) self.mods[mod]['instance'].execute(serv, canal, handle, custom_message) else: serv.privmsg(canal, "Disabled")
def check_reload(self, serv, canal, handle, message): mod_loaded = "" for key, value in self.mods.items(): parts = value['module'].split(".") module = parts[2] mod_loaded = mod_loaded + " " + module key = reload(key) utils.logs("Reloading modules") serv.privmsg(canal, "* Reload des modules" + mod_loaded + " *") self.init_mods() utils.logs("Modules reloaded")
def check_flood(self, serv, canal, handle): self.current_time = time.time() if self.current_time - self.last_time < self.flood_time and handle not in self.admin: utils.logs("Flood : " + str(self.current_time) + " - " + str(self.last_time)) self.last_time = time.time() if self.first_flood: serv.privmsg(canal, "Hey doucement " + handle + ", je ne suis pas un robot !") self.first_flood = False return True else: self.first_flood = True self.last_time = time.time() return False
def __init__(self): utils.logs("Bot start " + self.name) ircbot.SingleServerIRCBot.__init__(self, [(self.server, self.port)], self.name, "Bot de Pixis", 10) utils.logs("Bot started") self.init_mods() utils.logs("Mods loaded")
def on_kick(self, serv, ev): canal = ev.target() utils.logs("Kicked from canal '" + canal + "'. Joining in 2 seconds.") time.sleep(2) serv.join(canal)
def on_welcome(self, serv, ev): serv.join(self.canal) utils.logs(self.canal + "joined")