- user = self.parent.user(nick)
- chan = self.parent.channel(pieces[2]) #TODO TODO TODO
-
- def parsemsg(self, user, chan, msg):
- if msg[0] == '!': #TODO check config for trigger
- msg = msg[1:]
- else:
+ chan = self.parent.channel(pieces[2])
+
+ if nick == self.nick:
+ self.conn.send("WHO %s c%%ant,1" % (chan))
+ else:
+ user = self.parent.user(nick, justjoined=True)
+ chan.userjoin(user)
+ user.join(chan)
+
+ elif pieces[1] == "PART":
+ nick = pieces[0].split('!')[0][1:]
+ chan = self.parent.channel(pieces[2])
+
+ if nick != self.nick:
+ self.parent.user(nick).part(chan)
+ chan.userpart(self.parent.user(nick))
+
+ elif pieces[1] == "QUIT":
+ nick = pieces[0].split('!')[0][1:]
+ if nick != self.nick:
+ self.parent.user(nick).quit()
+ del self.parent.users[nick.lower()]
+
+ elif pieces[1] == "NICK":
+ oldnick = pieces[0].split('!')[0][1:]
+ newnick = pieces[2][1:]
+ if newnick.lower() != oldnick.lower():
+ self.parent.users[newnick.lower()] = self.parent.users[oldnick.lower()]
+ del self.parent.users[oldnick.lower()]
+ self.parent.users[newnick.lower()].nickchange(newnick)
+
+ elif pieces[0] == "ERROR": #TODO handle better
+ sys.exit(2)
+ os._exit(2)
+
+ elif pieces[1] == "MODE": #TODO parse for ops/voices (at least)
+ pass
+
+
+ def parsemsg(self, user, target, msg):
+ chan = None
+ if len(msg) == 0: