From caab9b671470ec405d3123a0eddbab652836fb1a Mon Sep 17 00:00:00 2001 From: Evelyn Date: Sun, 16 Jul 2017 21:18:58 +0100 Subject: Change line handling --- IRCServer.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'IRCServer.py') diff --git a/IRCServer.py b/IRCServer.py index 16659381..2783ae91 100644 --- a/IRCServer.py +++ b/IRCServer.py @@ -128,10 +128,20 @@ class Server(object): user.part_channel(channel) del self.channels[channel.name] def parse_line(self, line): - if line: - line_split = line.split(" ") - IRCLineHandler.handle(line, line_split, self.bot, self) - self.check_users() + if not line: return + original_line = line + prefix, final = None, None + if line[0]==":": + prefix, line = line[1:].split(" ", 1) + command, line = (line.split(" ", 1) + [""])[:2] + if line[:1]==":": + final, line = line[1:], "" + elif " :" in line: + line, final = line.split(" :", 1) + args_split = line.split(" ") if line else [] + if final: args_split.append(final) + IRCLineHandler.handle(original_line, prefix, command, args_split, final!=None, self.bot, self) + self.check_users() def check_users(self): for user in self.new_users: if not len(user.channels): -- cgit v1.3.1-10-gc9f91