pvl/irker/irc.py
changeset 108 d2c1485af725
parent 93 d85d825cbca7
child 110 af87b706e4a3
--- a/pvl/irker/irc.py	Sat Jan 12 22:08:02 2013 +0200
+++ b/pvl/irker/irc.py	Sat Jan 12 23:02:09 2013 +0200
@@ -31,6 +31,15 @@
 
     return name.lower()
 
+def myusername ():
+    """
+        Return username current process is running under.
+    """
+
+    import getpass
+
+    return getpass.getuser()
+
 class IRCError (Exception) :
     """
         A handled protocol error.
@@ -302,10 +311,17 @@
 
     NICKNAME = 'irker'
 
-    def __init__ (self, nickname=NICKNAME) :
+    def __init__ (self, nickname=NICKNAME, username=None) :
         # default nickname
         self.nickname = nickname
 
+        if username is True :
+            # system
+            self.username = myusername()
+
+        else :
+            self.username = username
+
         # (scheme, host, port, nick) -> IRCClient
         self.clients = {}
     
@@ -345,7 +361,10 @@
         
         # register
         try :
-            nickname = yield client.register(url.username or self.nickname, url.password)
+            nickname = yield client.register(url.username or self.nickname, 
+                    username    = self.username,
+                    password    = url.password, 
+            )
 
         except Exception as ex :
             log.err("register", ex)