From 494bab5649f0d743dc29cc1bc1285e29282c0b15 Mon Sep 17 00:00:00 2001 From: Ovidiu Constantin Date: Wed, 30 Nov 2011 16:55:16 +0200 Subject: [PATCH] * move server's hostname on IRC to realname, part 3: making it work --- server.py | 19 +++++++++---------- 1 files changed, 9 insertions(+), 10 deletions(-) diff --git a/server.py b/server.py index 6fcf491..88abd08 100755 --- a/server.py +++ b/server.py @@ -443,30 +443,28 @@ def irc_thread(): try: s = socket.socket() s.connect(('irc.freenode.net', 6667)) - s.send('USER electrum 0 * '+config.get('server','host')+' '+config.get('server','ircname')+'\n') + s.send('USER electrum 0 * :'+config.get('server','host')+' '+config.get('server','ircname')+'\n') s.send('NICK '+NICK+'\n') s.send('JOIN #electrum\n') + sf = s.makefile('r', 0) t = 0 while not stopping: - line = s.recv(2048) + line = sf.readline() line = line.rstrip('\r\n') line = line.split() if line[0]=='PING': s.send('PONG '+line[1]+'\n') elif '353' in line: # answer to /names k = line.index('353') - try: - k2 = line.index('366') - except: - continue - for item in line[k+1:k2]: + for item in line[k+1:]: if item[0:2] == 'E_': s.send('WHO %s\n'%item) elif '352' in line: # answer to /who # warning: this is a horrible hack which apparently works - name = line[2] - ip = line[10] - host = line[5] + k = line.index('352') + ip = line[k+4] + name = line[k+6] + host = line[k+9] peer_list[name] = (ip,host) elif time.time() - t > 5*60: s.send('NAMES #electrum\n') @@ -474,6 +472,7 @@ def irc_thread(): except: traceback.print_exc(file=sys.stdout) finally: + sf.close() s.close() -- 1.7.1