67 lines
2 KiB
Python
67 lines
2 KiB
Python
|
import logging
|
||
|
|
||
|
from discord.ext import commands
|
||
|
|
||
|
from bot import TuxBot
|
||
|
from .utils.extra import groupExtra
|
||
|
from .utils.lang import Texts
|
||
|
from .utils.models import AliasesModel
|
||
|
|
||
|
log = logging.getLogger(__name__)
|
||
|
|
||
|
|
||
|
class User(commands.Cog):
|
||
|
|
||
|
def __init__(self, bot: TuxBot):
|
||
|
self.bot = bot
|
||
|
|
||
|
###########################################################################
|
||
|
|
||
|
@groupExtra(name='alias', aliases=['aliases'], category='user',
|
||
|
description=Texts('commands').get('user._alias'))
|
||
|
async def _alias(self, ctx: commands.Context):
|
||
|
if ctx.invoked_subcommand is None:
|
||
|
await ctx.send_help('alias')
|
||
|
|
||
|
@_alias.command(name='add', aliases=['set', 'new'],
|
||
|
description=Texts('commands').get('user._alias_add'))
|
||
|
async def _alias_add(self, ctx: commands.Context, *, user_alias: str):
|
||
|
is_global = False
|
||
|
if '--global' in user_alias:
|
||
|
is_global = True
|
||
|
user_alias.replace('--global', '')
|
||
|
|
||
|
user_alias = user_alias.split(' -> ')
|
||
|
if len(user_alias) != 2:
|
||
|
return await ctx.send_help('alias')
|
||
|
|
||
|
command = user_alias[1]
|
||
|
user_alias = user_alias[0]
|
||
|
|
||
|
if self.bot.get_command(command) is None:
|
||
|
return await ctx.send(Texts('user').get('Command not found'))
|
||
|
|
||
|
alias = AliasesModel(
|
||
|
user_id=ctx.author.id,
|
||
|
alias=user_alias,
|
||
|
command=command,
|
||
|
guild="global" if is_global else str(ctx.guild.id)
|
||
|
)
|
||
|
|
||
|
self.bot.database.session.add(alias)
|
||
|
self.bot.database.session.commit()
|
||
|
|
||
|
@_alias.command(name='remove', aliases=['drop', 'del', 'delete'],
|
||
|
description=Texts('commands').get('user._alias_remove'))
|
||
|
async def _alias_remove(self, ctx: commands.Context, prefix: str):
|
||
|
...
|
||
|
|
||
|
@_alias.command(name='list', aliases=['show', 'all'],
|
||
|
description=Texts('commands').get('user._alias_list'))
|
||
|
async def _alias_list(self, ctx: commands.Context):
|
||
|
...
|
||
|
|
||
|
|
||
|
def setup(bot: TuxBot):
|
||
|
bot.add_cog(User(bot))
|