diff --git a/anonstream/control/parse.py b/anonstream/control/parse.py index a567c6d..5858950 100644 --- a/anonstream/control/parse.py +++ b/anonstream/control/parse.py @@ -5,6 +5,7 @@ from anonstream.control.spec import ParseException, Parsed from anonstream.control.spec.common import Str from anonstream.control.spec.methods.allowedness import SPEC as SPEC_ALLOWEDNESS from anonstream.control.spec.methods.chat import SPEC as SPEC_CHAT +from anonstream.control.spec.methods.emote import SPEC as SPEC_EMOTE from anonstream.control.spec.methods.exit import SPEC as SPEC_EXIT from anonstream.control.spec.methods.help import SPEC as SPEC_HELP from anonstream.control.spec.methods.title import SPEC as SPEC_TITLE diff --git a/anonstream/control/spec/methods/emote.py b/anonstream/control/spec/methods/emote.py new file mode 100644 index 0000000..a529d79 --- /dev/null +++ b/anonstream/control/spec/methods/emote.py @@ -0,0 +1,36 @@ +# SPDX-FileCopyrightText: 2022 n9k +# SPDX-License-Identifier: AGPL-3.0-or-later + +from quart import current_app + +from anonstream.emote import load_emote_schema, BadEmoteName +from anonstream.control.spec.common import Str, End +from anonstream.control.exceptions import CommandFailed + +CONFIG = current_app.config + +async def cmd_emote_help(): + normal = ['emote', 'help'] + response = ( + 'Usage: emote\n' + 'Commands:\n' + ' emote reload......try to reload the emote schema (existing messages are not modified)\n' + ) + return normal, response + +async def cmd_emote_reload(): + try: + emotes = load_emote_schema(app.config['EMOTE_SCHEMA']) + except BadEmoteName as e: + error, *_ = e.args + raise CommandFailed(error) from e + normal = ['emote', 'reload'] + response = '' + return normal, response + +SPEC = Str({ + None: End(cmd_emote_help), + 'help': End(cmd_emote_help), + 'reload': End(cmd_emote_reload), +}) +