diff options
author | 2020-09-25 19:39:45 +0530 | |
---|---|---|
committer | 2020-09-25 19:39:45 +0530 | |
commit | 73ce191c9e8c30cc4ecc677414cd3d826a336f28 (patch) | |
tree | 8881686fc977e9c1afbdacbe464263a95e65ad2d | |
parent | Merge branch 'partnerzodiac' of github.com:Anubhav1603/seasonalbot into partn... (diff) |
added fromisoformat and bugfix
-rw-r--r-- | bot/exts/valentines/valentine_zodiac.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/bot/exts/valentines/valentine_zodiac.py b/bot/exts/valentines/valentine_zodiac.py index 970fa0f2..6e33e5a5 100644 --- a/bot/exts/valentines/valentine_zodiac.py +++ b/bot/exts/valentines/valentine_zodiac.py @@ -1,9 +1,10 @@ +import calendar import logging import random from datetime import datetime from json import load from pathlib import Path -from typing import Union +from typing import Tuple, Union import discord from discord.ext import commands @@ -33,12 +34,15 @@ class ValentineZodiac(commands.Cog): self.zodiacs, self.zodiac_fact = self.load_comp_json() @staticmethod - def load_comp_json() -> dict: + def load_comp_json() -> Tuple[dict, dict]: """Load zodiac compatibility from static JSON resource.""" explanation_file = Path("bot/resources/valentines/zodiac_explanation.json") compatibility_file = Path("bot/resources/valentines/zodiac_compatibility.json") with explanation_file.open(encoding="utf8") as json_data: zodiac_fact = load(json_data) + for _, zodiac_data in zodiac_fact.items(): + zodiac_data['start_at'] = datetime.fromisoformat(zodiac_data['start_at']) + zodiac_data['end_at'] = datetime.fromisoformat(zodiac_data['end_at']) with compatibility_file.open(encoding="utf8") as json_data: zodiacs = load(json_data) return zodiacs, zodiac_fact @@ -67,7 +71,7 @@ class ValentineZodiac(commands.Cog): def zodiac_date_verifer(self, query_datetime: datetime) -> str: """Returns zodiac sign by checking month and date.""" for zodiac_name, zodiac_data in self.zodiac_fact.items(): - if zodiac_data["start_at"] <= query_datetime.date() <= zodiac_data["end_at"]: + if zodiac_data["start_at"].date() <= query_datetime.date() <= zodiac_data["end_at"].date(): zodiac = zodiac_name break else: @@ -87,8 +91,8 @@ class ValentineZodiac(commands.Cog): async def date_and_month(self, ctx: commands.Context, date: int, month: Union[int, str]) -> None: """Provides information about zodiac sign by taking month and date as input.""" if isinstance(month, str): - month = month.capitalize() try: + month = month.capitalize() month = list(calendar.month_abbr).index(month[:3]) except ValueError: await ctx.send("Sorry, but you have given wrong month name.") |