diff options
| author | 2017-07-16 21:18:58 +0100 | |
|---|---|---|
| committer | 2017-07-16 21:18:58 +0100 | |
| commit | caab9b671470ec405d3123a0eddbab652836fb1a (patch) | |
| tree | 263686e0e21710d458deeb3428a7f8aa71f626ea /IRCServer.py | |
| parent | Add IRCv3→SASL support for nickserv auth, added optional module whitelist, ... (diff) | |
| signature | ||
Change line handling
Diffstat (limited to 'IRCServer.py')
| -rw-r--r-- | IRCServer.py | 18 |
1 files changed, 14 insertions, 4 deletions
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): |
