Skip to content

Commit

Permalink
Add JSON Schema for Trivia Lists (#5565)
Browse files Browse the repository at this point in the history
Co-authored-by: Jakub Kuczys <[email protected]>
  • Loading branch information
Kreusada and Jackenmen authored Mar 2, 2023
1 parent d9c4634 commit 8de6b97
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
1 change: 1 addition & 0 deletions redbot/cogs/trivia/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ def not_str(value: Any) -> float:
MATCH_ALL_BUT_STR = Optional(Use(not_str))
TRIVIA_LIST_SCHEMA = Schema(
{
Optional("$schema"): And(str, error=_("{key} key must be a text value.")),
Optional("AUTHOR"): And(str, error=_("{key} key must be a text value.")),
Optional("CONFIG"): And(
{
Expand Down
61 changes: 61 additions & 0 deletions schema/trivia.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"$id": "https://raw.githubusercontent.com/Cog-Creators/Red-DiscordBot/V3/develop/schema/trivia.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Red-DiscordBot Trivia List file",
"type": "object",
"properties": {
"$schema": {
"type": "string",
"format": "uri"
},
"AUTHOR": {
"type": "string",
"description": "Author of the Trivia list."
},
"CONFIG": {
"type": "object",
"description": "The configuration for a trivia session.",
"properties": {
"bot_plays": {
"type": "boolean",
"description": "Whether or not the bot gains points during the session."
},
"delay": {
"type": "number",
"description": "The maximum number of seconds permitted to answer a question, must be a positive number greater than or equal to 4.0.",
"minimum": 4.0
},
"max_score": {
"type": "integer",
"description": "Number of points required in order to win the trivia, must be a positive integer.",
"exclusiveMinimum": 0
},
"payout_multiplier": {
"type": "number",
"description": "The payout multiplier, must be a positive number or zero.",
"minimum": 0
},
"reveal_answer": {
"type": "boolean",
"description": "Whether or not to reveal the answer when the question times out."
},
"timeout": {
"type": "number",
"description": "Number of seconds that need to pass until trivia stops due to no response, must be a positive number greater than 0.0.",
"exclusiveMinimum": 0
},
"use_spoilers": {
"type": "boolean",
"description": "Whether to hide the answers in spoilers when revealing the question's answers."
}
},
"additionalProperties": false
}
},
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}

0 comments on commit 8de6b97

Please sign in to comment.