async def language(self, ctx: Context, *args): settings = get_language_config_by_id(ctx.guild.id) supported_languages = [ i.replace(".yml", "") for i in os.listdir("./translations") ] if args: if args[0] not in supported_languages: await ctx.send( embed=Embed(description=settings.not_supported_language, color=0xff0000)) return langs = config.language translation = config.translation langs[str(ctx.guild.id)] = args[0] config.save("language", langs) translation[str(ctx.guild.id)] = get_default_bible_translation( str(ctx.guild.id)) config.save("translation", translation) settings = get_language_config_by_id(ctx.guild.id) await ctx.send(embed=Embed( description=settings.f_language_successfully_changed( get_language(ctx.guild.id)), color=0x34bdeb)) return embed = Embed( title=settings.f_language_settings_embed_title(ctx.guild.name), description=settings.f_language_settings_embed_description( get_language(ctx.guild.id), await get_prefix(ctx.message)), color=0x34bdeb) langs = dict() for filename in os.listdir("./translations"): if filename.endswith(".yml"): yaml_file = yaml.safe_load(open(f"translations/{filename}")) langs[filename[:-4]] = yaml_file["language-name"] description = "" for l in langs.keys(): description += f"`{l}` | " + langs[l] + "\n" embed.add_field(name=settings.supported_languages, value=description, inline=False) await ctx.send(embed=embed)
async def on_message(self, message: Message): content = message.content queries = get_bible_queries(content) for query in queries: translation = get_language_config_by_id( message.guild.id)._translations book = query.split(" ")[0] try: book_name = translation[book] translation = get_language_config_by_id(message.guild.id) try: request = BibleRequest(book_name, query.split(" ")[1], get_translation(message.guild.id)) except JSONDecodeError: await message.channel.send(embed=Embed( description=translation.quote_not_available, color=0xff0000)) continue embed = Embed(title=request.book_name + " " + str(request.chapter)) embed.set_footer(text="Bible quoted using getbible.net", icon_url=self.bot.user.avatar_url) embed.timestamp = datetime.utcnow() for verse in request.verses.keys(): embed.add_field(name=str(verse), value=request.verses[verse], inline=False) await message.channel.send(embed=embed) except KeyError: translation = get_language_config_by_id(message.guild.id) await message.channel.send(embed=Embed( description=translation.book_abbr_not_available + "\n" + translation.book_abbr_info + "\n[" + translation.abbreviation_url + "](" + translation.abbreviation_url + ")", color=0xff0000))
async def prefix(self, ctx: Context, *args): settings = get_language_config_by_id(ctx.guild.id) if args: prefixes = config.prefix prefixes[str(ctx.guild.id)] = args[0] config.save("prefix", prefixes) await ctx.send( embed=Embed(description=settings.f_prefix_successfully_changed( await get_prefix(ctx.message)), color=0x34bdeb)) return await ctx.send(embed=Embed( title=settings.f_prefix_settings_embed_title(ctx.guild.name), description=settings.f_prefix_settings_embed_description( await get_prefix(ctx.message), await get_prefix(ctx.message)), color=0x34bdeb))
async def translation(self, ctx: Context, *args): language_config = get_language_config_by_id(ctx.guild.id) if args: if args[0] not in get_possible_translations(ctx.guild.id): await ctx.send(embed=Embed( description=language_config.not_supported_translation, color=0xff0000)) return translation = config.translation translation[str(ctx.guild.id)] = args[0] config.save("translation", translation) await ctx.send(embed=Embed( description=language_config.f_translation_successfully_changed( get_translation(ctx.guild.id)), color=0x34bdeb)) return embed = Embed(title=language_config.f_translation_settings_embed_title( ctx.guild.name), description=language_config. f_translation_settings_embed_description( get_translation(ctx.guild.id), await get_prefix(ctx.message)), color=0x34bdeb) embed.add_field(name=language_config.supported_translations, value="\n".join([ f"`{i}`" for i in get_possible_translations(ctx.guild.id) ])) await ctx.send(embed=embed)
async def settings(self, ctx: Context): """ Manage the Settings of BibleBot """ if ctx.invoked_subcommand is None: message = await ctx.send(embed=Embed( description="Gathering Information ...")) settings = get_language_config_by_id(ctx.guild.id) embed = Embed( title=settings.f_general_settings_embed_title(ctx.guild.name), description=settings.f_general_settings_embed_description( await get_prefix(ctx.message)), color=0x34bdeb) embed.add_field( name=settings.general_settings_embed_field_prefix_title, value=settings. f_general_settings_embed_field_prefix_description( await get_prefix(ctx.message), await get_prefix(ctx.message))) embed.add_field( name=settings.general_settings_embed_field_language_title, value=settings. f_general_settings_embed_field_language_description( get_language(ctx.guild.id), await get_prefix(ctx.message))) embed.add_field( name=settings.general_settings_embed_field_translation_title, value=settings. f_general_settings_embed_field_translation_description( get_translation(ctx.guild.id), await get_prefix(ctx.message))) await message.edit(embed=embed)
async def on_command_error(ctx: Context, error): if isinstance(error, MissingPermissions): embed = Embed(description=get_language_config_by_id(ctx.guild.id).missing_permission_error_message, color=0xff0000) await ctx.send(embed=embed)