aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar ks123 <[email protected]>2020-03-11 17:32:02 +0200
committerGravatar ks123 <[email protected]>2020-03-11 17:32:02 +0200
commit9e3f043ce5c335c09a78f3e3e7aaf35e068d8eeb (patch)
treeb35520b0fae67671280360a3e9eca5d357127fce
parent(Space Cog): Added information about when date is not specified to `.space ap... (diff)
(Space Cog): Create new helper function `create_nasa_embed` and apply this to commands.
-rw-r--r--bot/seasons/evergreen/space.py46
1 files changed, 23 insertions, 23 deletions
diff --git a/bot/seasons/evergreen/space.py b/bot/seasons/evergreen/space.py
index cc66f84a..7c62b1a8 100644
--- a/bot/seasons/evergreen/space.py
+++ b/bot/seasons/evergreen/space.py
@@ -82,12 +82,11 @@ class Space(Cog):
# Do request to NASA API
result = await self.fetch_from_nasa("planetary/apod", params)
- # Create embed from result
- embed = Embed(title=f"Astronomy Picture of the Day - {result['date']}", description=result["explanation"])
- embed.set_image(url=result["url"])
- embed.set_footer(text="Powered by NASA API")
-
- await ctx.send(embed=embed)
+ await ctx.send(embed=await self.create_nasa_embed(
+ f"Astronomy Picture of the Day - {result['date']}",
+ result["explanation"],
+ result["url"]
+ ))
@space.command(name="nasa")
async def nasa(self, ctx: Context, *, search_term: Optional[str] = None) -> None:
@@ -110,12 +109,11 @@ class Space(Cog):
# Get (random) item from result, that will be shown
item = random.choice(data["collection"]["items"])
- # Create embed and send it
- embed = Embed(title=item["data"][0]["title"], description=item["data"][0]["description"])
- embed.set_image(url=item["links"][0]["href"])
- embed.set_footer(text="Powered by NASA API")
-
- await ctx.send(embed=embed)
+ await ctx.send(embed=await self.create_nasa_embed(
+ item["data"][0]["title"],
+ item["data"][0]["description"],
+ item["links"][0]["href"]
+ ))
@space.command(name="epic")
async def epic(self, ctx: Context, date: Optional[str] = None) -> None:
@@ -148,12 +146,9 @@ class Space(Cog):
image_url = f"{NASA_EPIC_BASE_URL}/archive/natural/{year}/{month}/{day}/jpg/{item['image']}.jpg"
- # Create embed, fill and send it
- embed = Embed(title="Earth Image", description=item["caption"])
- embed.set_image(url=image_url)
- embed.set_footer(text=f"Identifier: {item['identifier']} \u2022 Powered by NASA API")
-
- await ctx.send(embed=embed)
+ await ctx.send(embed=await self.create_nasa_embed(
+ "Earth Image", item["caption"], image_url, f" \u2022 Identifier: {item['identifier']}"
+ ))
@space.group(name="mars", invoke_without_command=True)
async def mars(self,
@@ -202,11 +197,9 @@ class Space(Cog):
# Get random item from result, generate embed with it and send
item = random.choice(result["photos"])
- embed = Embed(title=f"{item['rover']['name']}'s {item['camera']['full_name']} Mars Image")
- embed.set_image(url=item["img_src"])
- embed.set_footer(text="Powered by NASA API")
-
- await ctx.send(embed=embed)
+ await ctx.send(embed=await self.create_nasa_embed(
+ f"{item['rover']['name']}'s {item['camera']['full_name']} Mars Image", "", item["img_src"],
+ ))
@mars.command(name="dates", aliases=["d", "date", "rover", "rovers", "r"])
async def dates(self, ctx: Context) -> None:
@@ -222,6 +215,13 @@ class Space(Cog):
async with self.http_session.get(url=f"{base}/{endpoint}?{urlencode(params)}") as resp:
return await resp.json()
+ async def create_nasa_embed(self, title: str, description: str, image: str, footer: Optional[str] = "") -> Embed:
+ """Generate NASA commands embeds. Required: title, description and image URL, footer (addition) is optional."""
+ return Embed(
+ title=title,
+ description=description
+ ).set_image(url=image).set_footer(text="Powered by NASA API" + footer)
+
def setup(bot: SeasonalBot) -> None:
"""Load Space Cog."""