aboutsummaryrefslogtreecommitdiff
path: root/IRCServer.py
diff options
context:
space:
mode:
authorGravatar Evelyn2017-07-16 21:18:58 +0100
committerGravatar Evelyn2017-07-16 21:18:58 +0100
commitcaab9b671470ec405d3123a0eddbab652836fb1a (patch)
tree263686e0e21710d458deeb3428a7f8aa71f626ea /IRCServer.py
parentAdd IRCv3→SASL support for nickserv auth, added optional module whitelist, ... (diff)
signature
Change line handling
Diffstat (limited to 'IRCServer.py')
-rw-r--r--IRCServer.py18
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):