aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/evergreen/space.py
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2020-04-13 08:22:30 +0300
committerGravatar ks129 <[email protected]>2020-04-13 08:22:30 +0300
commit295001c8a00d0f8bc9b77457c97314ee0aa34745 (patch)
tree8671a4a2f7c37b6862adee83f5dcd30ba9d7e2b7 /bot/exts/evergreen/space.py
parent(TicTacToe): Applied `Player.display()` and `AI.display()` to cog and `Game` ... (diff)
parentMerge branch 'master' into tic-tac-toe (diff)
Merge remote-tracking branch 'origin/tic-tac-toe' into tic-tac-toe
Diffstat (limited to 'bot/exts/evergreen/space.py')
-rw-r--r--bot/exts/evergreen/space.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/bot/exts/evergreen/space.py b/bot/exts/evergreen/space.py
index 89b31e87..3587fc00 100644
--- a/bot/exts/evergreen/space.py
+++ b/bot/exts/evergreen/space.py
@@ -1,6 +1,6 @@
import logging
import random
-from datetime import datetime
+from datetime import date, datetime
from typing import Any, Dict, Optional, Union
from urllib.parse import urlencode
@@ -17,6 +17,8 @@ NASA_BASE_URL = "https://api.nasa.gov"
NASA_IMAGES_BASE_URL = "https://images-api.nasa.gov"
NASA_EPIC_BASE_URL = "https://epic.gsfc.nasa.gov"
+APOD_MIN_DATE = date(1995, 6, 16)
+
class DateConverter(Converter):
"""Parse SOL or earth date (in format YYYY-MM-DD) into `int` or `datetime`. When invalid input, raise error."""
@@ -74,11 +76,18 @@ class Space(Cog):
# Parse date to params, when provided. Show error message when invalid formatting
if date:
try:
- params["date"] = datetime.strptime(date, "%Y-%m-%d").date().isoformat()
+ apod_date = datetime.strptime(date, "%Y-%m-%d").date()
except ValueError:
await ctx.send(f"Invalid date {date}. Please make sure your date is in format YYYY-MM-DD.")
return
+ now = datetime.now().date()
+ if APOD_MIN_DATE > apod_date or now < apod_date:
+ await ctx.send(f"Date must be between {APOD_MIN_DATE.isoformat()} and {now.isoformat()} (today).")
+ return
+
+ params["date"] = apod_date.isoformat()
+
result = await self.fetch_from_nasa("planetary/apod", params)
await ctx.send(