diff --git a/bot/core.py b/bot/core.py index cf98f97..86899af 100644 --- a/bot/core.py +++ b/bot/core.py @@ -66,9 +66,12 @@ class Bot: message = "" magic_string = "End of /NAMES list." while magic_string not in message: - message = self.ircsock.recv(self.recv_size).decode() - # message = message.strip(self.splitter) - self.logger.debug(message) + try: + message = self.ircsock.recv(self.recv_size).decode() + # message = message.strip(self.splitter) + self.logger.debug(message) + except UnicodeDecodeError: + continue list_pattern = re.compile("[@=] {} :".format(chan)) user_listing = re.split(list_pattern, message) @@ -231,7 +234,11 @@ class Bot: magic_string = "MODE {} +r".format(self.botnick) while magic_string not in message: - message = self.ircsock.recv(self.recv_size).decode() + try: + message = self.ircsock.recv(self.recv_size).decode() + except UnicodeDecodeError: + continue + message = message.strip(self.splitter) self.logger.debug(message) if not registered and magic_phrase["has_registered"] in message: @@ -258,7 +265,10 @@ class Bot: while self.running: _message = "" while self.splitter not in _message: - _message = self.ircsock.recv(self.recv_size).decode() + try: + _message = self.ircsock.recv(self.recv_size).decode() + except UnicodeDecodeError: + continue if "raw" in callback: callback["raw"](_message)