fix(bible): working on the bible random command

This commit is contained in:
Seaswimmer 2024-02-01 18:46:59 -05:00
parent 95cd7fdcb5
commit 52a440ff3e
Signed by untrusted user: cswimr
GPG key ID: B8953EC01E5C4063

View file

@ -73,7 +73,7 @@ class Bible(commands.Cog):
async def _get_verses(self, bible_id: str, book_id: str, chapter: int) -> dict: async def _get_verses(self, bible_id: str, book_id: str, chapter: int) -> dict:
"""Get the verses of a chapter from the API.bible API.""" """Get the verses of a chapter from the API.bible API."""
url = f"https://api.scripture.api.bible/v1/bibles/{bible_id}/books/{book_id}/chapters/{chapter}/verses" url = f"https://api.scripture.api.bible/v1/bibles/{bible_id}/chapters/{book_id}.{chapter}/verses"
headers = await self.bot.get_shared_api_tokens("api.bible") headers = await self.bot.get_shared_api_tokens("api.bible")
async with self.session.get(url, headers=headers) as response: async with self.session.get(url, headers=headers) as response:
data = await response.json() data = await response.json()
@ -82,35 +82,12 @@ class Bible(commands.Cog):
return data["data"] return data["data"]
@commands.group(autohelp=True) @commands.group(autohelp=True)
async def bible(self, ctx: commands.Context): async def bible(self, ctx: commands.Context, book: str, passage: str):
"""Core command for the Bible cog."""
@bible.command(name="verse")
async def bible_verse(
self, ctx: commands.Context, book: str, chapter: int, verse: int
) -> str:
"""Get a Bible verse."""
bible_id = await self.config.bible()
try:
book_id = await self.translate_book_name(bible_id, book)
except ValueError as e:
await ctx.send(str(e))
return
passage = await self._get_passage(bible_id, f"{book_id}.{chapter}.{verse}")
embed = Embed(
title=f"{passage['reference']}",
description=passage["content"].replace("", ""),
color=await self.bot.get_embed_color(ctx.channel),
)
embed.set_footer(text=f"{ctx.prefix}bible verse - Powered by API.bible")
await ctx.send(embed=embed)
@bible.command(name="passage")
async def bible_passage(self, ctx: commands.Context, book: str, passage: str):
"""Get a Bible passage. """Get a Bible passage.
Example usage: Example usage:
`[p]bible passage John 3:16-3:17`""" `[p]bible Genesis 1:1`
`[p]bible John 3:16-3:17`"""
bible_id = await self.config.bible() bible_id = await self.config.bible()
try: try:
@ -140,7 +117,7 @@ class Bible(commands.Cog):
description=passage["content"].replace("", ""), description=passage["content"].replace("", ""),
color=await self.bot.get_embed_color(ctx.channel), color=await self.bot.get_embed_color(ctx.channel),
) )
embed.set_footer(text=f"{ctx.prefix}bible passage - Powered by API.bible") embed.set_footer(text=f"{ctx.prefix}bible - Powered by API.bible")
await ctx.send(embed=embed) await ctx.send(embed=embed)
@bible.command(name="random") @bible.command(name="random")
@ -152,10 +129,8 @@ class Bible(commands.Cog):
chapters = await self._get_chapters(bible_id, book["id"]) chapters = await self._get_chapters(bible_id, book["id"])
chapter = random.choice(chapters) chapter = random.choice(chapters)
verses = await self._get_verses(bible_id, book["id"], chapter["number"]) verses = await self._get_verses(bible_id, book["id"], chapter["number"])
verse = random.choice(verses) verse = random.choice(verses)["id"]
passage = await self._get_passage( passage = await self._get_passage(bible_id, verse)
bible_id, f"{book['id']}.{chapter['number']}.{verse['number']}"
)
embed = Embed( embed = Embed(
title=f"{passage['reference']}", title=f"{passage['reference']}",
description=passage["content"].replace("", ""), description=passage["content"].replace("", ""),