2022-03-19 19:48:19 -04:00
|
|
|
import logging
|
|
|
|
|
2022-08-19 07:12:58 -04:00
|
|
|
try:
|
|
|
|
from PyQt6 import QtCore, QtWidgets
|
|
|
|
except ImportError:
|
|
|
|
print("PyQt5 fallback (randomer.py)")
|
|
|
|
from PyQt5 import QtCore, QtWidgets
|
2022-03-19 19:48:19 -04:00
|
|
|
|
|
|
|
|
2022-10-07 16:51:40 -04:00
|
|
|
PchumLog = logging.getLogger("pchumLogger")
|
2011-06-09 03:42:56 -04:00
|
|
|
|
2014-01-12 02:33:33 -05:00
|
|
|
RANDNICK = "randomEncounter"
|
|
|
|
|
2022-10-07 16:51:40 -04:00
|
|
|
|
2011-06-09 03:42:56 -04:00
|
|
|
class RandomHandler(QtCore.QObject):
|
|
|
|
def __init__(self, parent):
|
|
|
|
QtCore.QObject.__init__(self, parent)
|
2014-01-12 02:33:33 -05:00
|
|
|
self.randNick = RANDNICK
|
2011-06-09 03:42:56 -04:00
|
|
|
self.mainwindow = parent
|
|
|
|
self.queue = []
|
2011-08-29 04:56:44 -04:00
|
|
|
self.running = False
|
|
|
|
|
|
|
|
def setRunning(self, on):
|
|
|
|
self.running = on
|
|
|
|
self.mainwindow.rand.setEnabled(on)
|
2011-06-09 03:42:56 -04:00
|
|
|
|
|
|
|
def getRandomer(self):
|
|
|
|
self.queue.append("?")
|
|
|
|
self.mainwindow.sendNotice.emit("?", self.randNick)
|
|
|
|
|
|
|
|
def setRandomer(self, r):
|
2011-07-19 19:26:27 -04:00
|
|
|
if r != self.mainwindow.userprofile.getRandom():
|
2022-10-07 16:51:40 -04:00
|
|
|
if r:
|
|
|
|
code = "+"
|
|
|
|
else:
|
|
|
|
code = "-"
|
2011-07-19 19:26:27 -04:00
|
|
|
self.queue.append(code)
|
|
|
|
self.mainwindow.sendNotice.emit(code, self.randNick)
|
2011-06-09 03:42:56 -04:00
|
|
|
|
2012-01-20 15:46:44 -05:00
|
|
|
def setIdle(self, i):
|
2022-10-07 16:51:40 -04:00
|
|
|
if i:
|
|
|
|
code = "~"
|
|
|
|
else:
|
|
|
|
code = "*"
|
2012-01-20 15:46:44 -05:00
|
|
|
self.queue.append(code)
|
|
|
|
self.mainwindow.sendNotice.emit(code, self.randNick)
|
|
|
|
|
2011-06-09 03:42:56 -04:00
|
|
|
@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:
|
2022-10-07 16:51:40 -04:00
|
|
|
return # Ignore if we didn't request this
|
2011-06-09 03:42:56 -04:00
|
|
|
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)
|
2022-10-07 16:51:40 -04:00
|
|
|
elif code in ["+", "-"]:
|
2011-06-09 03:42:56 -04:00
|
|
|
if l[1][0] == "k":
|
|
|
|
if code == "+":
|
|
|
|
self.mainwindow.userprofile.setRandom(True)
|
|
|
|
else:
|
|
|
|
self.mainwindow.userprofile.setRandom(False)
|
2022-10-07 16:51:40 -04:00
|
|
|
elif code in ["~", "*"]:
|
2012-01-20 15:46:44 -05:00
|
|
|
if l[1][0] == "k":
|
|
|
|
pass
|
2011-06-09 03:42:56 -04:00
|
|
|
elif code == "!":
|
|
|
|
if l[1] == "x":
|
2021-03-23 17:36:43 -04:00
|
|
|
msgbox = QtWidgets.QMessageBox()
|
2011-06-09 03:42:56 -04:00
|
|
|
msgbox.setText("Unable to fetch you a random encounter!")
|
|
|
|
msgbox.setInformativeText("Try again later :(")
|
2022-06-26 22:18:37 -04:00
|
|
|
msgbox.exec()
|
2011-06-09 03:42:56 -04:00
|
|
|
return
|
2023-02-19 15:10:35 -05:00
|
|
|
name = l[1]
|
2023-02-13 14:26:05 -05:00
|
|
|
PchumLog.info("Random Encounter name is: %s", name)
|
2011-06-09 03:42:56 -04:00
|
|
|
self.mainwindow.newConversation(name)
|