diff --git a/Jeopardy/README.md b/Jeopardy/README.md index d5f80d6..f0a2cb4 100644 --- a/Jeopardy/README.md +++ b/Jeopardy/README.md @@ -183,6 +183,11 @@ config [channel #channel] plugins.jeopardy.showHints True ``` ^ Show hint messages automatically. Overrides showTime +``` +config [channel #channel] plugins.jeopardy.timeReplies 1 +``` +^ Number of time remaining replies to show when showHints False and showTime True + ## Templates diff --git a/Jeopardy/config.py b/Jeopardy/config.py index 2e37998..b169ef0 100644 --- a/Jeopardy/config.py +++ b/Jeopardy/config.py @@ -56,6 +56,10 @@ conf.registerChannelValue(Jeopardy, 'numHints', registry.PositiveInteger(3, _("""The number of hints to be given for each question"""))) +conf.registerChannelValue(Jeopardy, 'timeReplies', + registry.PositiveInteger(1, _("""The number of time remaining replies + if showHints False and showTime True"""))) + conf.registerChannelValue(Jeopardy, 'delay', registry.Integer(4, _("""The number of seconds to increase the delay between questions"""))) diff --git a/Jeopardy/plugin.py b/Jeopardy/plugin.py index a45563a..493a2fc 100644 --- a/Jeopardy/plugin.py +++ b/Jeopardy/plugin.py @@ -121,6 +121,7 @@ class Jeopardy(callbacks.Plugin): self.stop_template = Template(self.registryValue("template.stop", channel)) self.time_template = Template(self.registryValue("template.time", channel)) self.timeout = timeout + self.timeReplies = self.registryValue('timeReplies', self.channel) self.total = num self.unanswered = 0 if not os.path.exists(self.directory): @@ -325,7 +326,10 @@ class Jeopardy(callbacks.Plugin): self.correct = False self.reply(self.question) self.endTime = time.time() + self.timeout - self.waitTime = self.timeout / (self.numHints + 1) + if self.showHints: + self.waitTime = self.timeout / (self.numHints + 1) + else: + self.waitTime = self.timeout / (self.timeReplies + 1) if self.registryValue('keepHistory', self.channel): self.history[self.channel].append(int(self.id)) if self.timeout > 0: @@ -338,7 +342,8 @@ class Jeopardy(callbacks.Plugin): self.hint() elif self.timeout > 0 and self.showHints or self.showTime: eventTime = time.time() + self.waitTime - schedule.addEvent(event, eventTime, 'event_%s' % self.channel) + if eventTime < self.endTime: + schedule.addEvent(event, eventTime, 'event_%s' % self.channel) elif self.showBlank: self.hint() if self.numAsked > 1 and self.delay > 0: @@ -404,7 +409,8 @@ class Jeopardy(callbacks.Plugin): def event(): self.timedEvent() eventTime = time.time() + self.waitTime - schedule.addEvent(event, eventTime, 'event_%s' % self.channel) + if eventTime < self.endTime: + schedule.addEvent(event, eventTime, 'event_%s' % self.channel) def end(self): @@ -453,7 +459,7 @@ class Jeopardy(callbacks.Plugin): if self.timeout > 0: eventTime = time.time() + self.waitTime reply = self.hint_template.render(hint = self.currentHint, time = round(self.endTime - time.time())) - if self.showHints or self.showTime: + if self.showHints or self.showTime and eventTime < self.endTime: schedule.addEvent(event, eventTime, 'event_%s' % self.channel) else: reply = self.hint_template.render(hint = self.currentHint, time = None)