feat(commands:tag>all|Tag): feat way to see all tag for a guild
fix(core): close TUXBOT-BOT-4X
This commit is contained in:
parent
614434aebf
commit
06bcae81fe
15 changed files with 100 additions and 25 deletions
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tuxbot-bot\n"
|
"Project-Id-Version: Tuxbot-bot\n"
|
||||||
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
||||||
"POT-Creation-Date: 2021-05-16 00:28+0200\n"
|
"POT-Creation-Date: 2021-05-16 15:11+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tuxbot-bot\n"
|
"Project-Id-Version: Tuxbot-bot\n"
|
||||||
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
||||||
"POT-Creation-Date: 2021-05-16 00:28+0200\n"
|
"POT-Creation-Date: 2021-05-16 15:11+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tuxbot-bot\n"
|
"Project-Id-Version: Tuxbot-bot\n"
|
||||||
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
||||||
"POT-Creation-Date: 2021-05-16 00:28+0200\n"
|
"POT-Creation-Date: 2021-05-16 15:11+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tuxbot-bot\n"
|
"Project-Id-Version: Tuxbot-bot\n"
|
||||||
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
||||||
"POT-Creation-Date: 2021-05-16 00:28+0200\n"
|
"POT-Creation-Date: 2021-05-16 15:11+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tuxbot-bot\n"
|
"Project-Id-Version: Tuxbot-bot\n"
|
||||||
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
||||||
"POT-Creation-Date: 2021-05-16 00:28+0200\n"
|
"POT-Creation-Date: 2021-05-16 15:11+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tuxbot-bot\n"
|
"Project-Id-Version: Tuxbot-bot\n"
|
||||||
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
||||||
"POT-Creation-Date: 2021-05-16 00:28+0200\n"
|
"POT-Creation-Date: 2021-05-16 15:11+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
|
@ -4,6 +4,8 @@ from discord.ext.commands import Context
|
||||||
from tuxbot.cogs.Tags.functions.exceptions import (
|
from tuxbot.cogs.Tags.functions.exceptions import (
|
||||||
UnknownTagException,
|
UnknownTagException,
|
||||||
ExistingTagException,
|
ExistingTagException,
|
||||||
|
TooLongTagException,
|
||||||
|
ReservedTagException,
|
||||||
)
|
)
|
||||||
from tuxbot.cogs.Tags.models import Tag
|
from tuxbot.cogs.Tags.models import Tag
|
||||||
|
|
||||||
|
@ -28,6 +30,16 @@ class NewTagConverter(commands.Converter):
|
||||||
async def convert(self, ctx: Context, argument: str): # skipcq: PYL-W0613
|
async def convert(self, ctx: Context, argument: str): # skipcq: PYL-W0613
|
||||||
arg = argument.lower()
|
arg = argument.lower()
|
||||||
|
|
||||||
|
if len(arg) > 50:
|
||||||
|
raise TooLongTagException(
|
||||||
|
_("Tag must be lower than 50 characters")
|
||||||
|
)
|
||||||
|
|
||||||
|
if arg.split(" ")[0] in ctx.bot.get_command("tag").all_commands:
|
||||||
|
raise ReservedTagException(
|
||||||
|
_("This tag name starts with a tag subcommand name")
|
||||||
|
)
|
||||||
|
|
||||||
tag_row = await Tag.get_or_none(server_id=ctx.guild.id, name=arg)
|
tag_row = await Tag.get_or_none(server_id=ctx.guild.id, name=arg)
|
||||||
|
|
||||||
if tag_row:
|
if tag_row:
|
||||||
|
|
|
@ -11,3 +11,11 @@ class UnknownTagException(TagsException):
|
||||||
|
|
||||||
class ExistingTagException(TagsException):
|
class ExistingTagException(TagsException):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class TooLongTagException(TagsException):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class ReservedTagException(TagsException):
|
||||||
|
pass
|
||||||
|
|
|
@ -24,7 +24,11 @@ async def get_all_tags(
|
||||||
|
|
||||||
|
|
||||||
async def search_tags(guild_id: int, q: str) -> list[Tag]:
|
async def search_tags(guild_id: int, q: str) -> list[Tag]:
|
||||||
return await Tag.filter(server_id=guild_id, name__icontains=q).all().order_by("-uses")
|
return (
|
||||||
|
await Tag.filter(server_id=guild_id, name__icontains=q)
|
||||||
|
.all()
|
||||||
|
.order_by("-uses")
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def create_tag(ctx: ContextPlus, name: str, content: str):
|
async def create_tag(ctx: ContextPlus, name: str, content: str):
|
||||||
|
|
|
@ -21,6 +21,14 @@ msgstr ""
|
||||||
msgid "Unknown tag"
|
msgid "Unknown tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: tuxbot/cogs/Tags/functions/converters.py:35
|
||||||
|
msgid "Tag must be lower than 50 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tuxbot/cogs/Tags/functions/converters.py:40
|
||||||
|
msgid "This tag name starts with a tag subcommand name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/functions/converters.py:34
|
#: tuxbot/cogs/Tags/functions/converters.py:34
|
||||||
msgid "Tag already exists"
|
msgid "Tag already exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -22,6 +22,14 @@ msgstr ""
|
||||||
msgid "Unknown tag"
|
msgid "Unknown tag"
|
||||||
msgstr "Tag inconnu"
|
msgstr "Tag inconnu"
|
||||||
|
|
||||||
|
#: tuxbot/cogs/Tags/functions/converters.py:35
|
||||||
|
msgid "Tag must be lower than 50 characters"
|
||||||
|
msgstr "Le nom du tag doit faire moins de 50 caracteres"
|
||||||
|
|
||||||
|
#: tuxbot/cogs/Tags/functions/converters.py:40
|
||||||
|
msgid "This tag name starts with a tag subcommand name"
|
||||||
|
msgstr "Le nom du tag est reservé"
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/functions/converters.py:34
|
#: tuxbot/cogs/Tags/functions/converters.py:34
|
||||||
msgid "Tag already exists"
|
msgid "Tag already exists"
|
||||||
msgstr "Tag déjà existant"
|
msgstr "Tag déjà existant"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tuxbot-bot\n"
|
"Project-Id-Version: Tuxbot-bot\n"
|
||||||
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
||||||
"POT-Creation-Date: 2021-05-16 00:28+0200\n"
|
"POT-Creation-Date: 2021-05-16 15:11+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -17,58 +17,66 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=CHARSET\n"
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/functions/converters.py:22
|
#: tuxbot/cogs/Tags/functions/converters.py:24
|
||||||
msgid "Unknown tag"
|
msgid "Unknown tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/functions/converters.py:34
|
#: tuxbot/cogs/Tags/functions/converters.py:35
|
||||||
|
msgid "Tag must be lower than 50 characters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tuxbot/cogs/Tags/functions/converters.py:40
|
||||||
|
msgid "This tag name starts with a tag subcommand name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tuxbot/cogs/Tags/functions/converters.py:46
|
||||||
msgid "Tag already exists"
|
msgid "Tag already exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:71
|
#: tuxbot/cogs/Tags/tags.py:78
|
||||||
msgid "Tag successfully deleted"
|
msgid "Tag successfully deleted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:74
|
#: tuxbot/cogs/Tags/tags.py:81
|
||||||
msgid "Your can't delete this tag"
|
msgid "Your can't delete this tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:82
|
#: tuxbot/cogs/Tags/tags.py:89
|
||||||
msgid "Tag successfully created"
|
msgid "Tag successfully created"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:98
|
#: tuxbot/cogs/Tags/tags.py:105
|
||||||
msgid "Tag successfully edited"
|
msgid "Tag successfully edited"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:101
|
#: tuxbot/cogs/Tags/tags.py:108
|
||||||
msgid "Your can't edit this tag"
|
msgid "Your can't edit this tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:120
|
#: tuxbot/cogs/Tags/tags.py:127
|
||||||
msgid "Owner"
|
msgid "Owner"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:122
|
#: tuxbot/cogs/Tags/tags.py:129
|
||||||
msgid "Uses"
|
msgid "Uses"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:135
|
#: tuxbot/cogs/Tags/tags.py:142
|
||||||
msgid "The search must be at least 3 characters"
|
msgid "The search must be at least 3 characters"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:150
|
#: tuxbot/cogs/Tags/tags.py:157
|
||||||
msgid "No tags found"
|
msgid "No tags found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:171
|
#: tuxbot/cogs/Tags/tags.py:178 tuxbot/cogs/Tags/tags.py:193
|
||||||
msgid "No tags found for {}"
|
msgid "No tags found for {}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:180
|
#: tuxbot/cogs/Tags/tags.py:204
|
||||||
msgid "Tag owner is on this server."
|
msgid "Tag owner is on this server."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tuxbot/cogs/Tags/tags.py:188
|
#: tuxbot/cogs/Tags/tags.py:212
|
||||||
msgid "This tag is now owned by you."
|
msgid "This tag is now owned by you."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -8,6 +8,8 @@ from tuxbot.cogs.Tags.functions.converters import TagConverter, NewTagConverter
|
||||||
from tuxbot.cogs.Tags.functions.exceptions import (
|
from tuxbot.cogs.Tags.functions.exceptions import (
|
||||||
UnknownTagException,
|
UnknownTagException,
|
||||||
ExistingTagException,
|
ExistingTagException,
|
||||||
|
TooLongTagException,
|
||||||
|
ReservedTagException,
|
||||||
)
|
)
|
||||||
from tuxbot.cogs.Tags.functions.paginator import TagPages
|
from tuxbot.cogs.Tags.functions.paginator import TagPages
|
||||||
from tuxbot.cogs.Tags.functions.utils import (
|
from tuxbot.cogs.Tags.functions.utils import (
|
||||||
|
@ -38,7 +40,12 @@ class Tags(commands.Cog):
|
||||||
async def cog_command_error(self, ctx: ContextPlus, error):
|
async def cog_command_error(self, ctx: ContextPlus, error):
|
||||||
if isinstance(
|
if isinstance(
|
||||||
error,
|
error,
|
||||||
(UnknownTagException, ExistingTagException),
|
(
|
||||||
|
UnknownTagException,
|
||||||
|
ExistingTagException,
|
||||||
|
TooLongTagException,
|
||||||
|
ReservedTagException,
|
||||||
|
),
|
||||||
):
|
):
|
||||||
await ctx.send(_(str(error), ctx, self.bot.config))
|
await ctx.send(_(str(error), ctx, self.bot.config))
|
||||||
|
|
||||||
|
@ -171,6 +178,23 @@ class Tags(commands.Cog):
|
||||||
_("No tags found for {}", ctx, self.bot.config).format(author)
|
_("No tags found for {}", ctx, self.bot.config).format(author)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@_tag.command(name="all")
|
||||||
|
async def _tag_all(self, ctx: ContextPlus):
|
||||||
|
tags = await get_all_tags(ctx.guild.id)
|
||||||
|
|
||||||
|
if tags:
|
||||||
|
try:
|
||||||
|
p = TagPages(entries=tags)
|
||||||
|
await p.start(ctx)
|
||||||
|
except menus.MenuError as e:
|
||||||
|
await ctx.send(e)
|
||||||
|
else:
|
||||||
|
await ctx.send(
|
||||||
|
_("No tags found for {}", ctx, self.bot.config).format(
|
||||||
|
ctx.guild.name
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
@_tag.command(name="claim")
|
@_tag.command(name="claim")
|
||||||
async def _tag_claim(self, ctx: ContextPlus, *, name: TagConverter):
|
async def _tag_claim(self, ctx: ContextPlus, *, name: TagConverter):
|
||||||
tag_row = await get_tag(ctx.guild.id, str(name))
|
tag_row = await get_tag(ctx.guild.id, str(name))
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Tuxbot-bot\n"
|
"Project-Id-Version: Tuxbot-bot\n"
|
||||||
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
"Report-Msgid-Bugs-To: rick@gnous.eu\n"
|
||||||
"POT-Creation-Date: 2021-05-16 00:28+0200\n"
|
"POT-Creation-Date: 2021-05-16 15:11+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
|
@ -112,7 +112,10 @@ class ContextPlus(commands.Context):
|
||||||
"reaction_add", timeout=42.0, check=check
|
"reaction_add", timeout=42.0, check=check
|
||||||
)
|
)
|
||||||
except asyncio.TimeoutError:
|
except asyncio.TimeoutError:
|
||||||
await message.remove_reaction("🗑", self.bot.user)
|
try:
|
||||||
|
await message.remove_reaction("🗑", self.bot.user)
|
||||||
|
except discord.HTTPException:
|
||||||
|
return None
|
||||||
else:
|
else:
|
||||||
await message.delete()
|
await message.delete()
|
||||||
return message
|
return message
|
||||||
|
|
Loading…
Reference in a new issue