Fix crashes

This commit is contained in:
Robert Miles 2021-06-04 16:48:11 +00:00
parent 2c52e1a498
commit ce280f8771
1 changed files with 23 additions and 5 deletions

28
bot.py
View File

@ -17,9 +17,25 @@ class Socket:
if lines[-1]:
self._read_buffer=lines[-1]
lines.pop(-1)
lines = [line.decode("utf-8") for line in lines]
out = []
for line in lines:
# try to decode as UTF-8, then CP1252, then ISO-8859-1
# if none of them work then just ignore the line
try:
line = line.decode("utf-8")
out.append(line)
except:
try:
line = line.decode("cp1252")
out.append(line)
except:
try:
line = line.decode("iso-8859-1")
out.append(line)
except:
continue
# for line in lines: print(" < "+line)
return lines
return out
def send(self,line):
# print(" > "+line)
self.sock.send(line.encode("utf-8"))
@ -164,9 +180,11 @@ class IRCBot:
self.running=True
while self.running:
lines = self.socket.read()
if lines:
for line in lines:
self.handle_line(line)
if lines is None: # socket dead for some reason
self.running = False
continue # exit loop
for line in lines:
self.handle_line(line)
self.socket.close()
del self.socket
def stop(self):