mirror of
https://github.com/oddluck/limnoria-plugins.git
synced 2025-04-30 07:21:16 -05:00
Jeopardy: cleanup, minor fixes
This commit is contained in:
parent
e26ef66af8
commit
08f348a5d4
@ -41,25 +41,31 @@ import supybot.world as world
|
|||||||
__version__ = "2020.02.24+git"
|
__version__ = "2020.02.24+git"
|
||||||
|
|
||||||
# XXX Replace this with an appropriate author or supybot.Author instance.
|
# XXX Replace this with an appropriate author or supybot.Author instance.
|
||||||
__author__ = supybot.Author('oddluck', 'oddluck',
|
__author__ = supybot.Author("oddluck", "oddluck", "oddluck@riseup.net")
|
||||||
'oddluck@riseup.net')
|
|
||||||
|
|
||||||
# This is a dictionary mapping supybot.Author instances to lists of
|
# This is a dictionary mapping supybot.Author instances to lists of
|
||||||
# contributions.
|
# contributions.
|
||||||
if not hasattr(supybot.authors, 'progval') or not hasattr(supybot.authors, 'quantumlemur'):
|
if not hasattr(supybot.authors, "progval") or not hasattr(
|
||||||
supybot.authors.progval = supybot.Author('Valentin Lorentz', 'ProgVal',
|
supybot.authors, "quantumlemur"
|
||||||
'progval@gmail.com')
|
):
|
||||||
supybot.authors.quantumlemur = supybot.Author('quantumlemur', 'quantumlemur',
|
supybot.authors.progval = supybot.Author(
|
||||||
'quantumlemur@users.sourceforge.net')
|
"Valentin Lorentz", "ProgVal", "progval@gmail.com"
|
||||||
__contributors__ = {supybot.authors.quantumlemur: ['original plugin base'],
|
)
|
||||||
supybot.authors.progval: ['code enhancement']}
|
supybot.authors.quantumlemur = supybot.Author(
|
||||||
|
"quantumlemur", "quantumlemur", "quantumlemur@users.sourceforge.net"
|
||||||
|
)
|
||||||
|
__contributors__ = {
|
||||||
|
supybot.authors.quantumlemur: ["original plugin base"],
|
||||||
|
supybot.authors.progval: ["code enhancement"],
|
||||||
|
}
|
||||||
|
|
||||||
# This is a url where the most recent plugin package can be downloaded.
|
# This is a url where the most recent plugin package can be downloaded.
|
||||||
__url__ = 'https://github.com/oddluck/limnoria-plugins/'
|
__url__ = "https://github.com/oddluck/limnoria-plugins/"
|
||||||
|
|
||||||
from . import config
|
from . import config
|
||||||
from . import plugin
|
from . import plugin
|
||||||
from imp import reload
|
from imp import reload
|
||||||
|
|
||||||
reload(plugin) # In case we're being reloaded.
|
reload(plugin) # In case we're being reloaded.
|
||||||
# Add more reloads here if you add third-party modules and want them to be
|
# Add more reloads here if you add third-party modules and want them to be
|
||||||
# reloaded when this plugin is reloaded. Don't forget to import them as well!
|
# reloaded when this plugin is reloaded. Don't forget to import them as well!
|
||||||
|
@ -32,135 +32,339 @@
|
|||||||
import supybot.conf as conf
|
import supybot.conf as conf
|
||||||
import supybot.registry as registry
|
import supybot.registry as registry
|
||||||
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
_ = PluginInternationalization('Jeopardy')
|
|
||||||
|
_ = PluginInternationalization("Jeopardy")
|
||||||
|
|
||||||
|
|
||||||
def configure(advanced):
|
def configure(advanced):
|
||||||
# This will be called by supybot to configure this module. advanced is
|
# This will be called by supybot to configure this module. advanced is
|
||||||
# a bool that specifies whether the user identified himself as an advanced
|
# a bool that specifies whether the user identified himself as an advanced
|
||||||
# user or not. You should effect your configuration by manipulating the
|
# user or not. You should effect your configuration by manipulating the
|
||||||
# registry as appropriate.
|
# registry as appropriate.
|
||||||
from supybot.questions import expect, anything, something, yn
|
from supybot.questions import expect, anything, something, yn
|
||||||
conf.registerPlugin('Jeopardy', True)
|
|
||||||
|
conf.registerPlugin("Jeopardy", True)
|
||||||
|
|
||||||
|
|
||||||
Jeopardy = conf.registerPlugin('Jeopardy')
|
Jeopardy = conf.registerPlugin("Jeopardy")
|
||||||
# This is where your configuration variables (if any) should go. For example:
|
# This is where your configuration variables (if any) should go. For example:
|
||||||
# conf.registerGlobalValue(Jeopardy, 'someConfigVariableName',
|
# conf.registerGlobalValue(Jeopardy, 'someConfigVariableName',
|
||||||
# registry.Boolean(False, """Help for someConfigVariableName."""))
|
# registry.Boolean(False, """Help for someConfigVariableName."""))
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'blankChar',
|
conf.registerChannelValue(
|
||||||
registry.String('*', _("""The character used for a blank when
|
Jeopardy,
|
||||||
displaying hints""")))
|
"blankChar",
|
||||||
|
registry.String(
|
||||||
|
"*", _("""The character used for a blank when displaying hints"""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'numHints',
|
conf.registerChannelValue(
|
||||||
registry.PositiveInteger(3, _("""The number of hints to be given for
|
Jeopardy,
|
||||||
each question""")))
|
"numHints",
|
||||||
|
registry.PositiveInteger(
|
||||||
|
3, _("""The number of hints to be given for each question"""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'timeReplies',
|
conf.registerChannelValue(
|
||||||
registry.PositiveInteger(1, _("""The number of time remaining replies
|
Jeopardy,
|
||||||
if showHints False and showTime True""")))
|
"timeReplies",
|
||||||
|
registry.PositiveInteger(
|
||||||
|
1,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
The number of time remaining replies if showHints False and showTime True
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'delay',
|
conf.registerChannelValue(
|
||||||
registry.Integer(4, _("""The number of seconds to increase the delay
|
Jeopardy,
|
||||||
between questions""")))
|
"delay",
|
||||||
|
registry.Integer(
|
||||||
|
4, _("""The number of seconds to increase the delay between questions"""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'timeout',
|
conf.registerChannelValue(
|
||||||
registry.Integer(90, _("""The number of seconds to allow for
|
Jeopardy,
|
||||||
each question""")))
|
"timeout",
|
||||||
|
registry.Integer(90, _("""The number of seconds to allow for each question"""),),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'hintPercentage',
|
conf.registerChannelValue(
|
||||||
registry.Probability(0.25, _("""The fraction of the answer that
|
Jeopardy,
|
||||||
should be revealed with each hint""")))
|
"hintPercentage",
|
||||||
|
registry.Probability(
|
||||||
|
0.25,
|
||||||
|
_("""The fraction of the answer that should be revealed with each hint"""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'hintReduction',
|
conf.registerChannelValue(
|
||||||
registry.Probability(0.5, _("""The percentage by which to reduce points
|
Jeopardy,
|
||||||
with each hint reveal""")))
|
"hintReduction",
|
||||||
|
registry.Probability(
|
||||||
|
0.5, _("""The percentage by which to reduce points with each hint reveal"""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'flexibility',
|
conf.registerChannelValue(
|
||||||
registry.Float(0.94, _("""The minimum similarity score of the answer checker.
|
Jeopardy,
|
||||||
Uses jaro-winkler distance, 1.0 is identical/disabled. (Sane values > 0.90)""")))
|
"flexibility",
|
||||||
|
registry.Float(
|
||||||
|
0.94,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
The minimum similarity score of the answer checker. Uses jaro-winkler
|
||||||
|
distance, 1.0 is identical/disabled. (Sane values > 0.90)
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'inactiveShutoff',
|
conf.registerChannelValue(
|
||||||
registry.Integer(5, _("""The number of questions that can go
|
Jeopardy,
|
||||||
unanswered before the game stops automatically.""")))
|
"inactiveShutoff",
|
||||||
|
registry.Integer(
|
||||||
|
5,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
The number of questions that can go
|
||||||
|
unanswered before the game stops automatically.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerGlobalValue(Jeopardy, 'jserviceUrl',
|
conf.registerGlobalValue(
|
||||||
registry.String('http://jservice.io', _("""Set an alternate URL where
|
Jeopardy,
|
||||||
jservice can be accessed at, for example a locally run jservice instance.""")))
|
"jserviceUrl",
|
||||||
|
registry.String(
|
||||||
|
"http://jservice.io",
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
Set an alternate URL where
|
||||||
|
jservice can be accessed at, for example a locally run jservice instance.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'defaultRoundLength',
|
conf.registerChannelValue(
|
||||||
registry.PositiveInteger(10, _("""The default number of questions to
|
Jeopardy,
|
||||||
be asked in a round.""")))
|
"defaultRoundLength",
|
||||||
|
registry.PositiveInteger(
|
||||||
|
10, _("""The default number of questions to be asked in a round."""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'randomize',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(True, _("""This will determine whether or not the
|
Jeopardy,
|
||||||
bot will randomize the questions.""")))
|
"randomize",
|
||||||
|
registry.Boolean(
|
||||||
|
True,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
This will determine whether or not the
|
||||||
|
bot will randomize the questions.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'requireOps',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(False, _("""This will determine whether or not the
|
Jeopardy,
|
||||||
user must be a channel operator to start/stop the game.""")))
|
"requireOps",
|
||||||
|
registry.Boolean(
|
||||||
|
False,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
This will determine whether or not the
|
||||||
|
user must be a channel operator to start/stop the game.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'enabled',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(True, _("""This will determine whether or not the
|
Jeopardy,
|
||||||
game is enabled for a given channel""")))
|
"enabled",
|
||||||
|
registry.Boolean(
|
||||||
|
True,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
This will determine whether or not the
|
||||||
|
game is enabled for a given channel
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'defaultPointValue',
|
conf.registerChannelValue(
|
||||||
registry.PositiveInteger(500, _("""The default point value for questions if
|
Jeopardy,
|
||||||
no point value is given""")))
|
"defaultPointValue",
|
||||||
|
registry.PositiveInteger(
|
||||||
|
500,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
The default point value for questions if
|
||||||
|
no point value is given.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'autoRestart',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(False, _("""Start a new round of random questions after
|
Jeopardy,
|
||||||
the current round has ended.""")))
|
"autoRestart",
|
||||||
|
registry.Boolean(
|
||||||
|
False,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
Start a new round of random questions after
|
||||||
|
the current round has ended.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'keepHistory',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(True, _("""Keep a history of previously asked questions per
|
Jeopardy,
|
||||||
channel and don't repeat them.""")))
|
"keepHistory",
|
||||||
|
registry.Boolean(
|
||||||
|
True,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
Keep a history of previously asked questions per
|
||||||
|
channel and don't repeat them.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'useBold',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(True, _("""Use bold in replies.""")))
|
Jeopardy, "useBold", registry.Boolean(True, _("""Use bold in replies."""))
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'showScores',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(True, _("""Show scores at the end of the round.""")))
|
Jeopardy,
|
||||||
|
"showScores",
|
||||||
|
registry.Boolean(True, _("""Show scores at the end of the round.""")),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'showBlank',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(True, _("""Show first (blank) hint with the question. Overrides showHints only for this reply.""")))
|
Jeopardy,
|
||||||
|
"showBlank",
|
||||||
|
registry.Boolean(
|
||||||
|
True,
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
Show first (blank) hint with the question. Overrides showHints
|
||||||
|
only for this reply.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'showTime',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(True, _("""Show time remaining messages when not showing hints.""")))
|
Jeopardy,
|
||||||
|
"showTime",
|
||||||
|
registry.Boolean(
|
||||||
|
True, _("""Show time remaining messages when not showing hints.""")
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy, 'showHints',
|
conf.registerChannelValue(
|
||||||
registry.Boolean(True, _("""Show hint messages automatically. Overrides showTime.""")))
|
Jeopardy,
|
||||||
|
"showHints",
|
||||||
|
registry.Boolean(
|
||||||
|
True, _("""Show hint messages automatically. Overrides showTime.""")
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerGroup(Jeopardy, 'template')
|
conf.registerGroup(Jeopardy, "template")
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy.template, 'question',
|
conf.registerChannelValue(
|
||||||
registry.String("#{{number}} of {{total}}: \x0313({{airdate}}) \x0309[${{points}}] \x0310\x1f{{category}}\x1f: {{clue}}",
|
Jeopardy.template,
|
||||||
_("""The template used to render questions.""")))
|
"question",
|
||||||
|
registry.String(
|
||||||
|
"#{{number}} of {{total}}: \x0313({{airdate}}) \x0309[${{points}}] "
|
||||||
|
"\x0310\x1f{{category}}\x1f: {{clue}}",
|
||||||
|
_("""The template used to render questions."""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerGroup(Jeopardy.template, 'restart')
|
conf.registerGroup(Jeopardy.template, "restart")
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy.template.restart, 'question',
|
conf.registerChannelValue(
|
||||||
registry.String("\x0313({{airdate}}) \x0309[${{points}}] \x0310\x1f{{category}}\x1f: {{clue}}",
|
Jeopardy.template.restart,
|
||||||
_("""The template used to render questions when autoRestart is True.""")))
|
"question",
|
||||||
|
registry.String(
|
||||||
|
"\x0313({{airdate}}) \x0309[${{points}}] \x0310\x1f{{category}}\x1f: {{clue}}",
|
||||||
|
_("""The template used to render questions when autoRestart is True."""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy.template.restart, 'correct',
|
conf.registerChannelValue(
|
||||||
registry.String("\x0313{{nick}}\x03 got it! The full answer was: {{answer}}. Points: \x0309{{points}}\x03 | Total: \x0309{{total}}",
|
Jeopardy.template.restart,
|
||||||
_("""The template used to render correct answer replies when autoRestart is True.""")))
|
"correct",
|
||||||
|
registry.String(
|
||||||
|
"\x0313{{nick}}\x03 got it! The full answer was: {{answer}}. Points: "
|
||||||
|
"\x0309{{points}}\x03 | Total: \x0309{{total}}",
|
||||||
|
_(
|
||||||
|
"""
|
||||||
|
The template used to render correct answer replies when autoRestart is True.
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy.template, 'hint',
|
conf.registerChannelValue(
|
||||||
registry.String("HINT: {{hint}}{% if time %} | ({{time}} seconds remaining){% endif %}{% if points %} | \x0309[${{points}}]{% endif %}", _("""The template used to render hints.""")))
|
Jeopardy.template,
|
||||||
|
"hint",
|
||||||
|
registry.String(
|
||||||
|
"HINT: {{hint}}{% if time %} | ({{time}} seconds remaining){% endif %}"
|
||||||
|
"{% if points %} | \x0309[${{points}}]{% endif %}",
|
||||||
|
_("""The template used to render hints."""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy.template, 'correct',
|
conf.registerChannelValue(
|
||||||
registry.String("\x0313{{nick}}\x03 got it! The full answer was: {{answer}}. Points: \x0309{{points}}\x03 | Round Score: \x0309{{round}}\x03 | Total: \x0309{{total}}",
|
Jeopardy.template,
|
||||||
_("""The template used to render correct answer replies.""")))
|
"correct",
|
||||||
|
registry.String(
|
||||||
|
"\x0313{{nick}}\x03 got it! The full answer was: {{answer}}. Points: \x0309"
|
||||||
|
"{{points}}\x03 | Round Score: \x0309{{round}}\x03 | Total: \x0309{{total}}",
|
||||||
|
_("""The template used to render correct answer replies."""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy.template, 'skip',
|
conf.registerChannelValue(
|
||||||
registry.String("No one got the answer! It was: {{answer}}",
|
Jeopardy.template,
|
||||||
_("""The template used to render unanswered question and skip replies.""")))
|
"skip",
|
||||||
|
registry.String(
|
||||||
|
"No one got the answer! It was: {{answer}}",
|
||||||
|
_("""The template used to render unanswered question and skip replies."""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy.template, 'stop',
|
conf.registerChannelValue(
|
||||||
registry.String("Jeopardy! stopped.{% if answer %} (Answer: {{answer}}){% endif %}",
|
Jeopardy.template,
|
||||||
_("""The template used to render stop replies.""")))
|
"stop",
|
||||||
|
registry.String(
|
||||||
|
"Jeopardy! stopped.{% if answer %} (Answer: {{answer}}){% endif %}",
|
||||||
|
_("""The template used to render stop replies."""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
conf.registerChannelValue(Jeopardy.template, 'time',
|
conf.registerChannelValue(
|
||||||
registry.String("{{time}} seconds remaining. [.hint] [.question] [.skip]",
|
Jeopardy.template,
|
||||||
_("""The template used to render time remaining replies.""")))
|
"time",
|
||||||
|
registry.String(
|
||||||
|
"{{time}} seconds remaining. [.hint] [.question] [.skip]",
|
||||||
|
_("""The template used to render time remaining replies."""),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user