diff options
author | 2020-04-16 14:59:59 -0700 | |
---|---|---|
committer | 2020-04-16 14:59:59 -0700 | |
commit | 394d681630b6cfbccb404eb5110ac94b7c0e41d4 (patch) | |
tree | adfeac6f64ed5ffc2f4e728d29bce4501199924c /bot/exts/evergreen/space.py | |
parent | Transition towards `wait_until_guild_available` use (diff) | |
parent | Merge pull request #396 from ks129/keyerrors-fix (diff) |
Merge branch 'master' into wait-until-guild-ready
Diffstat (limited to 'bot/exts/evergreen/space.py')
-rw-r--r-- | bot/exts/evergreen/space.py | 13 |
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( |