40 lines
1.9 KiB
Python
40 lines
1.9 KiB
Python
from core.chat_blob import ChatBlob
|
|
from core.command_param_types import Const, Any, Options
|
|
from core.decorators import instance, command
|
|
from core.translation_service import TranslationService
|
|
|
|
|
|
@instance()
|
|
class AliasController:
|
|
def inject(self, registry):
|
|
self.command_alias_service = registry.get_instance("command_alias_service")
|
|
self.ts: TranslationService = registry.get_instance("translation_service")
|
|
self.getresp = self.ts.get_response
|
|
|
|
@command(command="alias", params=[Const("list")], access_level="member",
|
|
description="List command aliases")
|
|
def alias_list_cmd(self, _, _1):
|
|
blob = ""
|
|
data = self.command_alias_service.get_enabled_aliases()
|
|
count = len(data)
|
|
for row in data:
|
|
blob += row.alias + " - " + row.command + "\n"
|
|
|
|
return ChatBlob(self.getresp("module/config", "alias_blob_title", {"amount": count}), blob)
|
|
|
|
@command(command="alias", params=[Const("add"), Any("alias"), Any("command")], access_level="admin",
|
|
description="Add a command alias", sub_command="modify")
|
|
def alias_add_cmd(self, _, _1, alias, command_str):
|
|
if self.command_alias_service.add_alias(alias, command_str, force_enable=True):
|
|
return self.getresp("module/config", "alias_add_success", {"alias": alias, "cmd": command_str})
|
|
else:
|
|
return self.getresp("module/config", "alias_add_fail", {"alias": alias})
|
|
|
|
@command(command="alias", params=[Options(["rem", "remove"]), Any("alias")], access_level="admin",
|
|
description="Remove a command alias", sub_command="modify")
|
|
def alias_remove_cmd(self, _, _1, alias):
|
|
if self.command_alias_service.remove_alias(alias):
|
|
return self.getresp("module/config", "alias_rem_success", {"alias": alias})
|
|
else:
|
|
return self.getresp("module/config", "alias_rem_fail", {"alias": alias})
|