def __require(self) -> list: data = self.__sock.recv(65536) if data is None: return None data = data.decode("utf8", errors='replace') buff = [str(mess) for mess in re.split(r"\r\n", self.__unsolved_string + data)] if len(data) >= 2 and data[-2:] != '\r\n': self.__unsolved_string = buff[-1] del buff[-1] result = [] for message in buff: if message == "": continue # self.__log.write(message + "\n") # self.__log.flush() ping = Parser.parse_ping(message) if ping is not None: result.append(ping) mode = Parser.parse_mode(self.__nick, message) if mode is not None: result.append(mode) if self.__condition is Condition.motd: end_motd = Parser.parse_end_motd(message) if end_motd is not None: result.append(end_motd) if self.__condition.value >= Condition.names.value: names = Parser.parse_names(self.__nick, message) if names is not None: result.append(names) end_names = Parser.parse_end_names(message) if end_names is not None: result.append(end_names) jpk = Parser.parse_jpk(message) if jpk is not None: result.append(jpk) m = Parser.parse_privmsg(message) if m is not None: result.append(m) q = Parser.parse_quit(message) if q is not None: result.append(q) nick = Parser.parse_nick(message) if nick is not None: result.append(nick) return result