From d7ad2114af08f0708e5214341db9cc28dea3ad0e Mon Sep 17 00:00:00 2001 From: HarHar Date: Thu, 24 Jan 2013 22:18:51 -0200 Subject: [PATCH 1/5] [irc] h-here I go --- syncplay/ircBot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncplay/ircBot.py b/syncplay/ircBot.py index 1e6e1b7..b2dc0fd 100644 --- a/syncplay/ircBot.py +++ b/syncplay/ircBot.py @@ -73,7 +73,7 @@ class Bot(object): self.msg(self.channel, chr(2) + '<' + who + '>'+ chr(15) +' has jumped from ' + utils.formatTime(fromTime) + ' to ' + utils.formatTime(toTime) +' (room ' + room + ')') def sockSend(self, s): - self.sock.send(s + u'\r\n') + self.sock.send(s.encode('utf8') + u'\r\n') def msg(self, who, message): self.sockSend('PRIVMSG ' + who + ' :' + message) def join(self, channel, passw=''): From fbdbf624e8355ff2ec638ce5100804aa69a627a3 Mon Sep 17 00:00:00 2001 From: HarHar Date: Thu, 24 Jan 2013 22:24:46 -0200 Subject: [PATCH 2/5] [irc] unicode stuff --- syncplay/ircBot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncplay/ircBot.py b/syncplay/ircBot.py index b2dc0fd..c8bff29 100644 --- a/syncplay/ircBot.py +++ b/syncplay/ircBot.py @@ -73,7 +73,7 @@ class Bot(object): self.msg(self.channel, chr(2) + '<' + who + '>'+ chr(15) +' has jumped from ' + utils.formatTime(fromTime) + ' to ' + utils.formatTime(toTime) +' (room ' + room + ')') def sockSend(self, s): - self.sock.send(s.encode('utf8') + u'\r\n') + self.sock.send(s.encode('utf8') + '\r\n') def msg(self, who, message): self.sockSend('PRIVMSG ' + who + ' :' + message) def join(self, channel, passw=''): From 7be8c23cd615878e475f76f46d5c8e69902bfcff Mon Sep 17 00:00:00 2001 From: HarHar Date: Thu, 24 Jan 2013 22:29:23 -0200 Subject: [PATCH 3/5] [irc] handle room name with spaces --- syncplay/ircBot.py | 65 ++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/syncplay/ircBot.py b/syncplay/ircBot.py index c8bff29..3402272 100644 --- a/syncplay/ircBot.py +++ b/syncplay/ircBot.py @@ -117,40 +117,43 @@ class Bot(object): elif split[0].lower() == '!roominfo': if len(split) >= 2: rooms = self.functions[1]() - for room in split[1:]: - if (room in rooms) == False: - self.msg(to, chr(3) + '5Error!' + chr(15) + ' Room does not exists (' + room + ')') + room = '' + for r in split[1:]: + room += r + ' ' + room = room[:-1] + if (room in rooms) == False: + self.msg(to, chr(3) + '5Error!' + chr(15) + ' Room does not exists (' + room + ')') + else: + users = self.functions[4](room) + paused = self.functions[5](room) + out = chr(2) + '' + chr(15) if paused else chr(2) + '' + chr(15) + time = self.functions[2](room) + if time == None: time = 0 + for u in users: + if u['length'] == None: continue + out += ' [' + utils.formatTime(time) + '/' + utils.formatTime(u['length']) + '] ' + break else: - users = self.functions[4](room) - paused = self.functions[5](room) - out = chr(2) + '' + chr(15) if paused else chr(2) + '' + chr(15) - time = self.functions[2](room) - if time == None: time = 0 - for u in users: - if u['length'] == None: continue - out += ' [' + utils.formatTime(time) + '/' + utils.formatTime(u['length']) + '] ' - break - else: - out += ' ' + out += ' ' - for u in users: - if u['file'] == None: continue - out += u['file'] - break + for u in users: + if u['file'] == None: continue + out += u['file'] + break + else: + out += '[no file]' + self.msg(to, out) + out = 'Users: ' + i = 0 + for user in users: + if i == len(users)-1: + out += chr(3) + '2' + user['nick'] + chr(15) + '.' + elif i == len(users)-2: + out += chr(3) + '2' + user['nick'] + chr(15) + ' and ' else: - out += '[no file]' - self.msg(to, out) - out = 'Users: ' - i = 0 - for user in users: - if i == len(users)-1: - out += chr(3) + '2' + user['nick'] + chr(15) + '.' - elif i == len(users)-2: - out += chr(3) + '2' + user['nick'] + chr(15) + ' and ' - else: - out += chr(3) + '2' + user['nick'] + chr(15) + ', ' - i += 1 - self.msg(to, out) + out += chr(3) + '2' + user['nick'] + chr(15) + ', ' + i += 1 + self.msg(to, out) else: self.msg(to, chr(2) + 'Usage:' + chr(15) + ' !roominfo [room]') elif split[0].lower() == '!pause': From 47a8cce82a496d8b17fa1c2a7a2578845004a531 Mon Sep 17 00:00:00 2001 From: HarHar Date: Thu, 24 Jan 2013 22:33:51 -0200 Subject: [PATCH 4/5] [irc] handle socket.error --- syncplay/ircBot.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/syncplay/ircBot.py b/syncplay/ircBot.py index 3402272..3c593b9 100644 --- a/syncplay/ircBot.py +++ b/syncplay/ircBot.py @@ -181,7 +181,12 @@ class Bot(object): def handlingThread(sock, bot): while bot.active: - rcvd = sock.recv(4096).split('\n') + try: + rcvd = sock.recv(4096).split('\n') + except socket.error, info: + bot.active = False + print '\033[91mSocket error (bot disconnected)\033[0;0m ' + str(info) + break for line in rcvd: try: line = line.replace('\r', '') From e9db1408f565f2837de4fbb5b1c7b799e57aa13a Mon Sep 17 00:00:00 2001 From: HarHar Date: Thu, 24 Jan 2013 22:34:54 -0200 Subject: [PATCH 5/5] [irc] read above --- syncplay/ircBot.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/syncplay/ircBot.py b/syncplay/ircBot.py index 3c593b9..6d3076c 100644 --- a/syncplay/ircBot.py +++ b/syncplay/ircBot.py @@ -73,7 +73,12 @@ class Bot(object): self.msg(self.channel, chr(2) + '<' + who + '>'+ chr(15) +' has jumped from ' + utils.formatTime(fromTime) + ' to ' + utils.formatTime(toTime) +' (room ' + room + ')') def sockSend(self, s): - self.sock.send(s.encode('utf8') + '\r\n') + try: + self.sock.send(s.encode('utf8') + '\r\n') + except socket.error, info: + bot.active = False + print '\033[91mSocket error (bot disconnected)\033[0;0m ' + str(info) + break def msg(self, who, message): self.sockSend('PRIVMSG ' + who + ' :' + message) def join(self, channel, passw=''):