Trying to add localization

This commit is contained in:
bacon
2024-03-09 17:04:18 +03:00
parent 75869de1cd
commit 3bd30239ae
4 changed files with 49 additions and 32 deletions

52
bot.py
View File

@@ -4,7 +4,7 @@ import os
import disnake import disnake
from dotenv import load_dotenv from dotenv import load_dotenv
from disnake import OptionType, Option from disnake import OptionType, Option, Localized
from disnake.ext import commands from disnake.ext import commands
from __init__ import version_info as ver, __version__ from __init__ import version_info as ver, __version__
from lib.CogsPrep import work_with_cogs, cog_list from lib.CogsPrep import work_with_cogs, cog_list
@@ -33,7 +33,8 @@ bot = commands.Bot(command_prefix=determine_prefix,
reload=True, reload=True,
test_guilds=[648126669122568215] test_guilds=[648126669122568215]
) )
bot.i18n.load(f"{os.path.dirname(__file__)}/locale/")
logger.info(f"{os.path.dirname(__file__)}/locale/")
asyncio.run(work_with_cogs('load', bot, asyncio.run(cog_list()))) asyncio.run(work_with_cogs('load', bot, asyncio.run(cog_list())))
@@ -48,15 +49,7 @@ async def on_ready():
@bot.slash_command( @bot.slash_command(
name="cog", name="cog",
# description="Work with cogs",
options=[ options=[
# Option(
# "what_do",
# description="Specify what do with cogs",
# type=OptionType.string,
# required=True,
# choices=["load", "unload", "reload", "enable", "disable"]
# ),
Option( Option(
'cog', 'cog',
description="specify cog", description="specify cog",
@@ -67,24 +60,22 @@ async def on_ready():
@commands.is_owner() @commands.is_owner()
async def slash_cogs(inter: disnake.ApplicationCommandInteraction): async def slash_cogs(inter: disnake.ApplicationCommandInteraction):
""" """
Working with cogs (modules) Working with cogs (modules) {{SLASH_COG}}
Parameters Parameters
---------- ----------
:param cog: Select cogfile :param inter:
""" """
# await work_with_cogs(what_do, bot, cog)
# await inter.response.send_message(f'Cog {cog} is {what_do}ed', ephemeral=True)
pass pass
@slash_cogs.sub_command() @slash_cogs.sub_command(description=Localized("Enables Cog", key="ENABLES_COG"))
async def enable(inter: disnake.ApplicationCommandInteraction, cog: str): async def enable(inter: disnake.ApplicationCommandInteraction, cog: str):
""" """
Enables Cog {{ENABLES_COG}}
Parameters Parameters
---------- ----------
:param inter:
:param cog: Select Cogfile {{COG_FILE}} :param cog: Select Cogfile {{COG_FILE}}
""" """
await work_with_cogs('enable', bot, cog) await work_with_cogs('enable', bot, cog)
@@ -93,24 +84,52 @@ async def enable(inter: disnake.ApplicationCommandInteraction, cog: str):
@slash_cogs.sub_command(description='Disables Cog') @slash_cogs.sub_command(description='Disables Cog')
async def disable(inter: disnake.ApplicationCommandInteraction, cog: str): async def disable(inter: disnake.ApplicationCommandInteraction, cog: str):
"""
Parameters
----------
:param inter:
:param cog: Select Cogfile {{COG_FILE}}
"""
await work_with_cogs('disable', bot, cog) await work_with_cogs('disable', bot, cog)
await inter.response.send_message(f'Cog {cog} is disabled', ephemeral=True) await inter.response.send_message(f'Cog {cog} is disabled', ephemeral=True)
@slash_cogs.sub_command(description='Loads Cog') @slash_cogs.sub_command(description='Loads Cog')
async def load(inter: disnake.ApplicationCommandInteraction, cog: str): async def load(inter: disnake.ApplicationCommandInteraction, cog: str):
"""
Parameters
----------
:param inter:
:param cog: Select Cogfile {{COG_FILE}}
"""
await work_with_cogs('load', bot, cog) await work_with_cogs('load', bot, cog)
await inter.response.send_message(f'Cog {cog} is loaded', ephemeral=True) await inter.response.send_message(f'Cog {cog} is loaded', ephemeral=True)
@slash_cogs.sub_command(description='Unloads Cog') @slash_cogs.sub_command(description='Unloads Cog')
async def unload(inter: disnake.ApplicationCommandInteraction, cog: str): async def unload(inter: disnake.ApplicationCommandInteraction, cog: str):
"""
Parameters
----------
:param inter:
:param cog: Select Cogfile {{COG_FILE}}
"""
await work_with_cogs('unload', bot, cog) await work_with_cogs('unload', bot, cog)
await inter.response.send_message(f'Cog {cog} is unload', ephemeral=True) await inter.response.send_message(f'Cog {cog} is unload', ephemeral=True)
@slash_cogs.sub_command(description='Reloads Cog') @slash_cogs.sub_command(description='Reloads Cog')
async def reload(inter: disnake.ApplicationCommandInteraction, cog: str): async def reload(inter: disnake.ApplicationCommandInteraction, cog: str):
"""
Parameters
----------
:param inter:
:param cog: Select Cogfile {{COG_FILE}}
"""
await work_with_cogs('reload', bot, cog) await work_with_cogs('reload', bot, cog)
await inter.response.send_message(f'Cog {cog} is reloaded', ephemeral=True) await inter.response.send_message(f'Cog {cog} is reloaded', ephemeral=True)
@@ -139,5 +158,4 @@ async def cogs_error(inter: disnake.ApplicationCommandInteraction):
logger.error(f'User {inter.author} tries to use cogs func') logger.error(f'User {inter.author} tries to use cogs func')
bot.i18n.load("locale/")
bot.run(os.getenv('TOKEN')) bot.run(os.getenv('TOKEN'))

View File

@@ -16,18 +16,21 @@ class General(commands.Cog):
@commands.slash_command( @commands.slash_command(
name="info", name="info",
description="Read list of tracks for user",
options=[ options=[
Option("user", "Specify any user", OptionType.user), Option("user", "Specify any user", OptionType.user),
] ]
) )
async def info(self, inter: disnake.ApplicationCommandInteraction, user=None): async def info(self, inter: disnake.ApplicationCommandInteraction, user=None):
audio = None """
Shows user info {{SLASH_INFO}}
Parameters
----------
:param inter:
:param user:
:return:
"""
user = user or inter.author user = user or inter.author
_user = DBReader(inter.guild.id)
for r in _user:
if r.userid == user.id:
audio = r.defaulttracks
rolelist = [r.mention for r in user.roles if r != inter.guild.default_role] rolelist = [r.mention for r in user.roles if r != inter.guild.default_role]
if rolelist: if rolelist:
@@ -35,11 +38,6 @@ class General(commands.Cog):
else: else:
roles = "Not added any role" roles = "Not added any role"
if audio:
audios = "" + "\n".join(sorted(audio.split(", ")))
else:
audios = "Not selected audio"
emb = disnake.Embed( emb = disnake.Embed(
title="General information", title="General information",
description=f"General information on server about {user}", description=f"General information on server about {user}",
@@ -50,9 +48,8 @@ class General(commands.Cog):
value=f"Username: {user}\n" value=f"Username: {user}\n"
f"Nickname: {user.nick}\n" f"Nickname: {user.nick}\n"
f"Joined at: {user.joined_at.strftime('%A, %B %d %Y @ %H:%M:%S')}", inline=False) f"Joined at: {user.joined_at.strftime('%A, %B %d %Y @ %H:%M:%S')}", inline=False)
emb.add_field(name="Default audio list", value=f"{audios}")
emb.add_field(name="Roles list", value=f"{roles}") emb.add_field(name="Roles list", value=f"{roles}")
emb.set_footer(text="Information requested by: {}".format(inter.author.display_name)) emb.set_footer(text=f"Information requested by: {inter.author.display_name}")
await inter.response.send_message(embed=emb, ephemeral=True) await inter.response.send_message(embed=emb, ephemeral=True)

View File

@@ -5,6 +5,6 @@ from yandex_music import Client
client = Client(os.getenv('Yandex_Token')).init() client = Client(os.getenv('Yandex_Token')).init()
def _search(self, _str: str, _type: str): def _search(_str: str, _type: str):
search_result = client.search(_str, type_=_type) search_result = client.search(_str, type_=_type)
pass pass

View File

@@ -1,4 +1,6 @@
{ {
"ENABLES_COG": "Включение кога", "ENABLES_COG": "Включение кога",
"COG_FILE": "Ког Файл" "COG_FILE": "Выберите ког файл",
"SLASH_INFO": "Отобрадение информации о пользователе",
"SLASH_COG": "Работа с когами(модулями)"
} }