pesterchum/randomer.py

56 lines
1.9 KiB
Python

from PyQt4 import QtGui, QtCore
class RandomHandler(QtCore.QObject):
def __init__(self, parent):
QtCore.QObject.__init__(self, parent)
self.randNick = "randomEncounter"
self.mainwindow = parent
self.queue = []
# Make True when Lex's new randomEncounter bot (C++) is online
self.running = True
def getRandomer(self):
self.queue.append("?")
self.mainwindow.sendNotice.emit("?", self.randNick)
def setRandomer(self, r):
if r != self.mainwindow.userprofile.getRandom():
if r: code = "+"
else: code = "-"
self.queue.append(code)
self.mainwindow.sendNotice.emit(code, self.randNick)
@QtCore.pyqtSlot()
def getEncounter(self):
self.queue.append("!")
self.mainwindow.sendNotice.emit("!", self.randNick)
def incoming(self, msg):
l = msg.split("=")
code = l[0][0]
if code not in self.queue:
return # Ignore if we didn't request this
self.queue.remove(code)
if code == "?":
if l[1][0] == "y":
self.mainwindow.userprofile.setRandom(True)
elif l[1][0] == "n":
self.mainwindow.userprofile.setRandom(False)
elif code in ["+","-"]:
if l[1][0] == "k":
if code == "+":
self.mainwindow.userprofile.setRandom(True)
else:
self.mainwindow.userprofile.setRandom(False)
elif code == "!":
if l[1] == "x":
from PyQt4 import QtGui
msgbox = QtGui.QMessageBox()
msgbox.setText("Unable to fetch you a random encounter!")
msgbox.setInformativeText("Try again later :(")
msgbox.exec_()
return
name = unicode(l[1])
print name
self.mainwindow.newConversation(name)