This commit is contained in:
Stephen Dranger 2011-02-18 20:02:54 -06:00
parent e0bfd64184
commit fececa45ba
19 changed files with 44 additions and 34 deletions

BIN
convo.pyc

Binary file not shown.

Binary file not shown.

Binary file not shown.

8
irc.py
View file

@ -24,13 +24,15 @@ class PesterIRC(QtCore.QObject):
self.cli.command_handler.mainwindow = self.mainwindow self.cli.command_handler.mainwindow = self.mainwindow
self.conn = self.cli.connect() self.conn = self.cli.connect()
self.brokenConnection = False self.brokenConnection = False
self.connectedIRC = False self.registeredIRC = False
def closeConnection(self): def closeConnection(self):
if self.cli:
self.cli.close() self.cli.close()
self.cli = None
def setConnectionBroken(self, broken=True): def setConnectionBroken(self, broken=True):
self.brokenConnection = True self.brokenConnection = True
def setConnected(self): def setConnected(self):
self.connectedIRC = True self.registeredIRC = True
self.connected.emit() self.connected.emit()
@QtCore.pyqtSlot(PesterProfile) @QtCore.pyqtSlot(PesterProfile)
def getMood(self, *chums): def getMood(self, *chums):
@ -166,7 +168,7 @@ class PesterIRC(QtCore.QObject):
self.setConnectionBroken() self.setConnectionBroken()
def updateIRC(self): def updateIRC(self):
self.conn.next() return self.conn.next()
moodUpdated = QtCore.pyqtSignal(QtCore.QString, Mood) moodUpdated = QtCore.pyqtSignal(QtCore.QString, Mood)
colorUpdated = QtCore.pyqtSignal(QtCore.QString, QtGui.QColor) colorUpdated = QtCore.pyqtSignal(QtCore.QString, QtGui.QColor)

BIN
irc.pyc

Binary file not shown.

BIN
memos.pyc

Binary file not shown.

BIN
menus.pyc

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -168,8 +168,7 @@ class IRCClient:
try: try:
buffer += self.socket.recv(1024) buffer += self.socket.recv(1024)
except socket.timeout, e: except socket.timeout, e:
yield True raise e
continue
except socket.error, e: except socket.error, e:
try: # a little dance of compatibility to get the errno try: # a little dance of compatibility to get the errno
errno = e.errno errno = e.errno
@ -195,6 +194,8 @@ class IRCClient:
pass pass
yield True yield True
except socket.timeout, se:
raise se
except socket.error, se: except socket.error, se:
if self.socket: if self.socket:
logging.info('closing socket') logging.info('closing socket')
@ -206,6 +207,8 @@ class IRCClient:
logging.info('closing socket') logging.info('closing socket')
self.socket.close() self.socket.close()
def close(self): def close(self):
if self.socket:
logging.info('closing socket')
self.socket.close() self.socket.close()
class IRCApp: class IRCApp:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -168,7 +168,7 @@ class pesterTheme(dict):
v = dict.__getitem__(self, keys.pop(0)) v = dict.__getitem__(self, keys.pop(0))
for k in keys: for k in keys:
v = v[k] v = v[k]
return v return default if v is None else v
except KeyError: except KeyError:
if hasattr(self, 'inheritedTheme'): if hasattr(self, 'inheritedTheme'):
return self.inheritedTheme.get(key, default) return self.inheritedTheme.get(key, default)
@ -181,7 +181,7 @@ class pesterTheme(dict):
v = dict.__getitem__(self, keys.pop(0)) v = dict.__getitem__(self, keys.pop(0))
for k in keys: for k in keys:
v = v[k] v = v[k]
return True return False if v is None else True
except KeyError: except KeyError:
if hasattr(self, 'inheritedTheme'): if hasattr(self, 'inheritedTheme'):
return self.inheritedTheme.has_key(key) return self.inheritedTheme.has_key(key)
@ -1667,16 +1667,27 @@ class IRCThread(QtCore.QThread):
def run(self): def run(self):
irc = self.irc irc = self.irc
irc.IRCConnect() irc.IRCConnect()
while 1: timer = QtCore.QTimer(self)
self.connect(timer, QtCore.SIGNAL('timeout()'),
self, QtCore.SLOT('updateIRC()'))
timer.start()
self.exec_()
@QtCore.pyqtSlot()
def updateIRC(self):
irc = self.irc
if irc.brokenConnection: if irc.brokenConnection:
irc.brokenConnection = False irc.brokenConnection = False
self.restartIRC.emit() self.restartIRC.emit()
irc.closeConnection() irc.closeConnection()
irc.IRCConnect() irc.IRCConnect()
try: try:
irc.updateIRC() res = irc.updateIRC()
except socket.timeout, se:
if not irc.registeredIRC:
irc.closeConnection()
self.failedIRC.emit("Connection timed out")
except socket.error, se: except socket.error, se:
if irc.connectedIRC: if irc.registeredIRC:
irc.setConnectionBroken() irc.setConnectionBroken()
else: else:
irc.closeConnection() irc.closeConnection()
@ -1868,14 +1879,8 @@ class MainProgram(QtCore.QObject):
@QtCore.pyqtSlot() @QtCore.pyqtSlot()
def tryAgain(self): def tryAgain(self):
self.ircapp.irc.closeConnection() self.ircapp.quit()
self.ircapp.irc.IRCConnect() print "Quit?"
labeltxt = self.widget.loadingscreen.loadinglabel.text()
if labeltxt != "R3CONN3CT1NG":
self.widget.loadingscreen.loadinglabel.setText("R3CONN3CTING")
elif labeltxt[0:12] == "R3CONN3CT1NG":
i = int(labeltxt[13:])
self.widget.loadingscreen.loadinglabel.setText("R3CONN3CTING %d" (i+1))
@QtCore.pyqtSlot() @QtCore.pyqtSlot()
def restartIRC(self): def restartIRC(self):

View file

@ -1 +1 @@
{"color": "#ff00ff", "theme": "pesterchum", "quirks": [], "handle": "ghostDunk"} {"color": "#ff00ff", "theme": "pesterchum2.5", "quirks": [], "handle": "ghostDunk"}

View file

@ -47,7 +47,7 @@
}, },
"moodlabel": { "style": "font:bold;font-family:'Courier';color:black;", "moodlabel": { "style": "font:bold;font-family:'Courier';color:black;",
"loc": [12, 466], "loc": [12, 466],
"text": "MOODS:" "text": "MOOD:"
}, },
"moods": [ "moods": [
{ "style": "text-align:left; background:#ffff00;border:2px solid #c48a00;color: black; font-family:'Courier'; font:bold; padding-left:3px;", { "style": "text-align:left; background:#ffff00;border:2px solid #c48a00;color: black; font-family:'Courier'; font:bold; padding-left:3px;",