Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/modules/core/alias.py

55 lines
2.6 KiB
Python
Raw Normal View History

2023-02-17 10:57:13 +00:00
from core.builtins import Bot, Image
2023-03-04 08:51:56 +00:00
from core.component import module
2023-02-17 10:52:09 +00:00
from core.utils.image_table import image_table_render, ImageTable
2022-08-27 16:17:01 +00:00
2023-03-04 08:51:56 +00:00
ali = module('alias', required_admin=True, base=True)
2022-08-27 16:17:01 +00:00
2023-05-19 04:46:29 +00:00
@ali.command('add <alias> <command> {{core.help.alias.add}}', 'remove <alias> {{core.help.alias.remove}}',
'reset {{core.help.alias.reset}}',
'list {{core.help.alias.list}}')
2023-02-05 14:33:33 +00:00
async def set_alias(msg: Bot.MessageSession):
2022-08-27 16:17:01 +00:00
alias = msg.options.get('command_alias')
arg1 = msg.parsed_msg.get('<alias>', False)
arg2 = msg.parsed_msg.get('<command>', False)
if alias is None:
alias = {}
if 'add' in msg.parsed_msg:
if arg1 not in alias:
has_prefix = False
for prefixes in msg.prefixes:
if arg2.startswith(prefixes):
has_prefix = True
break
if not has_prefix:
2023-09-01 14:38:32 +00:00
await msg.send_message(msg.locale.t("core.message.alias.add.invalid_prefix"))
2022-08-27 16:17:01 +00:00
return
alias[arg1] = arg2
msg.data.edit_option('command_alias', alias)
2023-09-01 14:38:32 +00:00
await msg.send_message(msg.locale.t("core.message.alias.add.success", arg1=arg1, arg2=arg2))
2022-08-27 16:17:01 +00:00
else:
2023-09-01 14:38:32 +00:00
await msg.send_message(msg.locale.t("core.message.alias.add.already_in", arg1=arg1))
2022-08-27 16:17:01 +00:00
elif 'remove' in msg.parsed_msg:
if arg1 in alias:
del alias[arg1]
msg.data.edit_option('command_alias', alias)
2023-09-01 14:38:32 +00:00
await msg.send_message(msg.locale.t("core.message.alias.remove.success", arg1=arg1))
2022-08-27 16:17:01 +00:00
else:
2023-09-01 14:38:32 +00:00
await msg.send_message(msg.locale.t("core.message.alias.remove.not_found", arg1=arg1))
2022-08-27 16:17:01 +00:00
elif 'reset' in msg.parsed_msg:
msg.data.edit_option('command_alias', {})
2023-09-01 14:38:32 +00:00
await msg.send_message(msg.locale.t("core.message.alias.reset.success"))
2023-02-17 10:52:09 +00:00
elif 'list' in msg.parsed_msg:
if len(alias) == 0:
2023-09-01 14:38:32 +00:00
await msg.send_message(msg.locale.t("core.message.alias.list.none"))
2023-02-17 10:52:09 +00:00
else:
2023-03-08 11:40:16 +00:00
table = ImageTable([[k, alias[k]] for k in alias],
2023-05-19 04:46:29 +00:00
[msg.locale.t("core.message.alias.list.table.header.alias"),
msg.locale.t("core.message.alias.list.table.header.command")])
2023-02-17 10:52:09 +00:00
img = await image_table_render(table)
if img:
2023-09-01 14:38:32 +00:00
await msg.send_message([msg.locale.t("core.message.alias.list.lists"), Image(img)])
2023-02-17 10:52:09 +00:00
else:
2023-09-01 14:38:32 +00:00
await msg.send_message(f'{msg.locale.t("core.message.alias.list.lists")}\n'
+ '\n'.join([f'{k} -> {alias[k]}' for k in alias]))