nemubot/modules/qd/GameUpdater.py

61 lines
1.6 KiB
Python
Raw Permalink Normal View History

2012-06-30 02:06:59 +00:00
# coding=utf-8
from datetime import datetime
import random
import threading
from .DelayedTuple import DelayedTuple
DELAYED = dict()
LASTQUESTION = 99999
class GameUpdater(threading.Thread):
def __init__(self, msg, bfrseen):
self.msg = msg
self.bfrseen = bfrseen
threading.Thread.__init__(self)
def run(self):
global DELAYED, LASTQUESTION
if self.bfrseen is not None:
seen = datetime.now() - self.bfrseen
rnd = random.randint(0, int(seen.seconds/90))
else:
rnd = 1
if rnd != 0:
QUESTIONS = CONF.getNodes("question")
if self.msg.channel == "#nemutest":
quest = 9
else:
if LASTQUESTION >= len(QUESTIONS):
2012-07-27 16:18:13 +00:00
print (QUESTIONS)
2012-06-30 02:06:59 +00:00
random.shuffle(QUESTIONS)
LASTQUESTION = 0
quest = LASTQUESTION
LASTQUESTION += 1
question = QUESTIONS[quest]["question"]
regexp = QUESTIONS[quest]["regexp"]
great = QUESTIONS[quest]["great"]
2012-07-23 10:07:26 +00:00
self.msg.send_chn("%s: %s" % (self.msg.nick, question))
2012-06-30 02:06:59 +00:00
2012-07-23 10:07:26 +00:00
DELAYED[self.msg.nick] = DelayedTuple(regexp, great)
2012-06-30 02:06:59 +00:00
2012-07-23 10:07:26 +00:00
DELAYED[self.msg.nick].wait(20)
2012-06-30 02:06:59 +00:00
2012-07-23 10:07:26 +00:00
if DELAYED[self.msg.nick].triche(DELAYED[self.msg.nick].msg):
getUser(self.msg.nick).playTriche()
self.msg.send_chn("%s: Tricheur !" % self.msg.nick)
elif DELAYED[self.msg.nick].perfect(DELAYED[self.msg.nick].msg):
2012-06-30 02:06:59 +00:00
if random.randint(0, 10) == 1:
2012-07-23 10:07:26 +00:00
getUser(self.msg.nick).bonusQuestion()
self.msg.send_chn("%s: Correct !" % self.msg.nick)
2012-06-30 02:06:59 +00:00
else:
2012-07-23 10:07:26 +00:00
self.msg.send_chn("%s: J'accepte" % self.msg.nick)
del DELAYED[self.msg.nick]
SCORES.save(self.msg.nick)
2012-06-30 02:06:59 +00:00
save()