diff --git a/bot/core.py b/bot/core.py index 63ceab4..8173420 100644 --- a/bot/core.py +++ b/bot/core.py @@ -1,4 +1,5 @@ import re +import sys import ssl import time import json @@ -120,6 +121,8 @@ class Bot: return text.split("!", 1)[0][1:] def parse_name(self, name): + if len(name) == 0 or name is None: + return name if name[0] in ["~", "@", "+", "%"]: return name[1:] else: @@ -236,7 +239,10 @@ class Bot: logger.setFormatter(logging.Formatter(logfmt, datefmt)) self.logger.addHandler(logger) - self.ircsock.connect((self.server, self.port)) + try: + self.ircsock.connect((self.server, self.port)) + except ConnectionRefusedError: + sys.exit(1) self.send("USER {0} {0} {0} {0}", self.botnick) self.send("NICK {0}", self.botnick) @@ -245,20 +251,18 @@ class Bot: email = self.settings["email"] or "" magic_phrase = { - "has_registered": "Password", + "has_registered": "Password accepted", "needs_to_register": "choose a different nick", "needs_to_confirm": "Your account will expire", "not_registered": "Your nickname is not registered" #"ready_to_id": "is now your displayed host", #"nickserv_missing": "No such nick/channel" } - authenticate = len(password) > 0 and len(confirm) > 0 - magic_string = "MODE {} +r".format(self.botnick) + magic_string = "MODE {} :+r".format(self.botnick) while magic_string not in message and authenticate: try: message = self.ircsock.recv(self.recv_size).decode() - print(message) except UnicodeDecodeError: continue @@ -329,11 +333,11 @@ class Bot: self.logger.debug(message) if "nick" in callback: callback["nick"](old_name, new_name) - elif "KICK " in message: - kicker, source = self.handle_kick(message) - self.logger.debug(message) - if "kick" in callback: - callback["kick"](kicker, source) + #elif "KICK " in message: + # kicker, source = self.handle_kick(message) + # self.logger.debug(message) + # if "kick" in callback: + # callback["kick"](kicker, source) elif "JOIN " in message: user = self.handle_join(message) self.logger.debug(message)