async def change_guild_language(self, ctx, language: str): try: await Prison.change_lang(language, ctx.guild.id) except TypeError as ex: await ctx.send(embed=Embed(title=__("Выбран неправильный язык"), description=f"```{str(ex)}```")) return else: await ctx.send( __("Успешно изменен язык на {language}").format(language))
async def coin(self, ctx, excepted): assert excepted in COINS, __("Большой и толстый Хер") rand_coin = self.sys_random.randint(0x0, 0x1) result = COINS[rand_coin] if result != excepted: return await ctx.reply( __("Посмотрим, что тут у нас, {result}, Ты сдохнешь").format( result=result)) await ctx.reply( __("Посмотрим, что у вас выпало, {result} Поздравляю, вас не трахнут" ).format(result=result))
async def show_help(self, _): """shows this message""" embed = Embed(title='Помощь от Батиной книги') messages = [] for emoji, button in self.buttons.items(): messages.append(f'{emoji}: {button.action.__doc__}') embed.add_field(name=__('Для чего это кнопкочка?'), value='\n'.join(messages), inline=0) embed.set_footer(text=__('Ты на странице - {current_page}.').format( current_page=self.current_page + 1)) await self.message.edit(content=None, embed=embed) async def go_back_to_current_page(): await asyncio.sleep(30.0) await self.show_page(self.current_page) self.bot.loop.create_task(go_back_to_current_page())
async def on_command_error(self, ctx, error): errors = commands.errors # alias args_errors = (errors.BadUnionArgument, errors.MissingRequiredArgument, errors.BadArgument, errors.TooManyArguments) ignore_errors = (errors.RoleNotFound, errors.CommandNotFound, errors.CommandOnCooldown, errors.ChannelNotFound) if isinstance(error, ignore_errors): return elif isinstance(error, args_errors): await ctx.send( __("``Argument Error``, Проебался, что то пропустил в аргментах" )) elif isinstance(error, commands.NotOwner): await ctx.reply( embed=Embed(title=__("Доступ запрещен"), description=__("%s, Только Для Оффицеров" % ctx.command))) elif isinstance(error, commands.CommandInvokeError): if isinstance(error.original, AssertionError): await ctx.reply(error) else: await ctx.reply( __("Ну что же, у нас проблемки. {error}").format( error=error)) else: await ctx.reply(__("Как ты это Сделал это? %s\n" % error)) text = __("У нас проблема, в тюрьме: %s, и эта проблема: %s" % (ctx.guild.name, error)) await self.send_to_owner(text)
def format_commands(self, cog, commands): short_doc = cog.description.split( '\n', 1)[0] + '\n' if cog.description else __('Хуй те, а не помощь\n') current_count = len(short_doc) ending_note = __('+%d нет') ending_length = len(ending_note) page = [] for command in commands: value = f'``{command.name}``' count = len(value) + 1 # The space if count + current_count < 800: current_count += count page.append(value) else: if current_count + ending_length + 1 > 800: page.pop() break [cmds_len, page_len] = len(commands), len(page) if page_len == cmds_len: return short_doc + ' '.join(page) hidden = cmds_len - page_len return short_doc + ' '.join(page) + '\n' + (ending_note % hidden)
async def format_page(self, menu, cogs): prefix = menu.ctx.prefix description = f'"{prefix}help <command>" ну что же, документация действий вот здесь, если захочешь найдешь.\n'\ f'Поиспользуй это "{prefix}help category" для того что бы не запутатся.\n' embed = Embed(title='Категории', description=description, colour=discord.Colour.blurple()) for cog in cogs: commands = self.commands.get(cog) if commands: value = self.format_commands(cog, commands) embed.add_field(name=cog.qualified_name, value=value, inline=1) maximum = self.get_max_pages() embed.set_footer(text=__('Page {current_page}/{maximum}').format( current_page=menu.current_page + 1, maximum=maximum)) return embed
class Debugger(commands.Cog, name='pantry | Кладовка'): """ Использвать для того что бы не копатся в говно коде. For not change shit code. """ __slots__ = "bot", def __init__(self, bot): self.bot = bot @commands.command(name="show_logs", help=__("shows last logs")) @commands.is_owner() async def show_logs(self, ctx, file: str = None): if not file: last_log_path = log.last_file() with open(proj_root / "logs" / last_log_path) as f: result = f.read() e = Embed(title=last_log_path.name, description=result) await ctx.send(embed=e) return e = Embed(title=file, description="".join(await log.read_log(proj_root / "logs" / file))) await ctx.send(embed=e) @commands.group(name="i18n") @commands.has_permissions(administrator=True) async def change_guild_language(self, ctx, language: str): try: await Prison.change_lang(language, ctx.guild.id) except TypeError as ex: await ctx.send(embed=Embed(title=__("Выбран неправильный язык"), description=f"```{str(ex)}```")) return else: await ctx.send( __("Успешно изменен язык на {language}").format(language))
def __init__(self, bot): self.bot = bot setattr(self, '__doc__', __("Досуг для оффицеров"))