modinfo = {
'author': 'Erebus Team',
'license': 'public domain',
- 'compatible': [1], # compatible module API versions
- 'depends': ['userinfo'], # other modules required to work properly?
+ 'compatible': [1,2],
+ 'depends': ['userinfo'],
+ 'softdeps': ['help'],
}
# preamble
self.nextquestiontimer.cancel()
self.nextquestiontimer = None
except: pass
-#TODO remove if the replacement works
-# if threading is not None and threading._Timer is not None:
-# if isinstance(self.steptimer, threading._Timer):
-# self.steptimer.cancel()
-# if isinstance(self.nextquestiontimer, threading._Timer):
-# self.nextquestiontimer.cancel()
-# self.nextquestiontimer = None
-# self.savedb()
def savedb(self): #returns whether or not it was able to save
if json is not None and json.dump is not None:
os.unlink(tmpfn)
except OSError: # temp file is already gone
pass
- raise #TODO: we may be better off just swallowing exceptions?
+ raise # we may be better off just swallowing exceptions?
return False
def getchan(self):
if 'topicformat' in self.db and self.db['topicformat'] is not None:
self.getbot().conn.send("TOPIC %s" % (self.db['chan']))
- if isinstance(self.steptimer, threading._Timer):
+ if isinstance(self.steptimer, MyTimer):
self.steptimer.cancel()
- if isinstance(self.nextquestiontimer, threading._Timer):
+ if isinstance(self.nextquestiontimer, MyTimer):
self.nextquestiontimer.cancel()
self.nextquestiontimer = None
nextqid = random.randrange(0, len(self.questions))
nextq = self.questions[nextqid]
- if nextq[0][0] == "!":
+ if nextq[0].startswith("!"):
nextqid = None
nextq = specialQuestion(nextq)
@lib.help("<full question>", "finds a qid given a complete question")
def findq(bot, user, chan, realtarget, *args):
args = list(args)
- if args[0][0] == "@":
+ if args[0].startswith("@"):
cat = args.pop(0)[1:].lower()
questions = state.db['questions'][cat]
else:
@lib.help("[@<category>] <regex>", "finds a qid given a regex or partial question")
def findqre(bot, user, chan, realtarget, *args):
args = list(args)
- if args[0][0] == "@":
+ if args[0].startswith("@"):
cat = args.pop(0)[1:].lower()
questions = state.db['questions'][cat]
else:
@lib.help("[@<category>] <qid>", "displays the q*a for a qid", "category defaults to current")
def showq(bot, user, chan, realtarget, *args):
args = list(args)
- if args[0][0] == "@":
+ if args[0].startswith("@"):
cat = args.pop(0)[1:].lower()
questions = state.db['questions'][cat]
else:
@lib.help("[@<category>] <qid>", "removes a question from the database")
def delq(bot, user, chan, realtarget, *args):
args = list(args)
- if args[0][0] == "@":
+ if args[0].startswith("@"):
cat = args.pop(0)[1:].lower()
questions = state.db['questions'][cat]
else:
@lib.help("[@<category>] <q>*<a>", "adds a question")
def addq(bot, user, chan, realtarget, *args):
args = list(args)
- if args[0][0] == "@":
+ if args[0].startswith("@"):
cat = args.pop(0)[1:].lower()
questions = state.db['questions'][cat]
else:
"%s (%s)" % (person(x), pts(x))
for x in range(3) if x < len(state.db['ranks'])
]),
- 'top3c': ' '.join([
- "%s (%s, %s)" % (person(x), pts(x), country(x))
+ 'top3c': ', '.join([
+ "%s (%s) %s" % (person(x), country(x), pts(x))
for x in range(3) if x < len(state.db['ranks'])
]),
'top10': ' '.join([
randnum2 = random.randrange(0, 11)
newq[0] = "What is %d + %d?" % (randnum1, randnum2)
newq[1] = spellout(randnum1+randnum2)
+ else: pass #default to not modifying
return newq
def spellout(num):