def guess_username(self, username): username = username.lower() candidates = set(get_registered_nicknames()) if username in candidates: return username matches = get_close_matches(username, candidates, 1) try: return matches[0] except IndexError: return None
def imitate_command(self, username, message): candidates = set(get_registered_nicknames()) args = message.strip().split() if len(args) < 2: self.send_message_to_user(username, "You could at least tell me WHO you want to imitate!") return tried_username = "******".join(args[1:]) user_to_imitate = self.guess_username(tried_username) if user_to_imitate is None: user_list = "\n".join(map(lambda k: "- {}".format(k), candidates)) self.send_message_to_user( username, "Either you're drunk, dumb or " "an asshole, but {} ain't in " "my book. Here's those I know " "so far:\n{}".format(tried_username, user_list), ) return self.imitate_nick(username, user_to_imitate)