pvl.irker.irc: handle channel kick/part
authorTero Marttila <terom@paivola.fi>
Fri, 11 Jan 2013 22:04:11 +0200
changeset 84 e5f36ec2e8d2
parent 83 1cb48f2ba1e9
child 85 d1c2dfc1a875
pvl.irker.irc: handle channel kick/part
pvl/irker/irc.py
--- a/pvl/irker/irc.py	Fri Jan 11 17:32:35 2013 +0200
+++ b/pvl/irker/irc.py	Fri Jan 11 22:04:11 2013 +0200
@@ -88,6 +88,9 @@
         self._registering = None
         self._channels = { }
 
+        # TODO: smarter/configurable queueing?
+        self.lineRate = 1.0
+
     def connectionMade (self) :
         self.hostname = self.transport.getPeer().host
         self.transport.logPrefix = self.logPrefix
@@ -172,6 +175,25 @@
     # ERR_INVITEONLYCHAN
     # ERR_BANNEDFROMCHAN
     # ERR_BADCHANNELKEY
+    
+    def _close_channel (self, channel) :
+        """
+            Remove channel from our list of channels.
+
+            TODO: purge queued messages for channel?
+        """
+
+        del self._channels[normalize(channel)]
+
+    def left (self, channel) :
+        log.msg('IRCClient.left', channel)
+
+        self._close_channel(channel)
+
+    def kickedFrom (self, channel, kicker, message) :
+        log.msg('IRCClient.kicked', channel, kicker, message)
+        
+        self._close_channel(channel)
 
     def joined (self, channel) :
         """