diff options
| author | 2021-05-15 23:41:20 +0200 | |
|---|---|---|
| committer | 2021-05-15 23:41:20 +0200 | |
| commit | e6e280cd13236647ffcaa35f522baeb747fbf97e (patch) | |
| tree | a888762bcd97704f57ad33e8e1bd0d179c3abd2b /bot/exts/christmas/hanukkah_embed.py | |
| parent | Merge pull request #737 from python-discord/latex-don't-load-cog (diff) | |
| parent | chore: Apply Iceman's suggestions (diff) | |
Spring cleanup (#718)
This PR changes a ton of various different bits and pieces. Please see #718 for more information. 
Diffstat (limited to 'bot/exts/christmas/hanukkah_embed.py')
| -rw-r--r-- | bot/exts/christmas/hanukkah_embed.py | 85 | 
1 files changed, 43 insertions, 42 deletions
| diff --git a/bot/exts/christmas/hanukkah_embed.py b/bot/exts/christmas/hanukkah_embed.py index 4f470a34..119f2446 100644 --- a/bot/exts/christmas/hanukkah_embed.py +++ b/bot/exts/christmas/hanukkah_embed.py @@ -5,19 +5,23 @@ from typing import List  from discord import Embed  from discord.ext import commands +from bot.bot import Bot  from bot.constants import Colours, Month  from bot.utils.decorators import in_month  log = logging.getLogger(__name__) +HEBCAL_URL = ( +    "https://www.hebcal.com/hebcal/?v=1&cfg=json&maj=on&min=on&mod=on&nx=on&" +    "year=now&month=x&ss=on&mf=on&c=on&geo=geoname&geonameid=3448439&m=50&s=on" +) +  class HanukkahEmbed(commands.Cog):      """A cog that returns information about Hanukkah festival.""" -    def __init__(self, bot: commands.Bot): +    def __init__(self, bot: Bot):          self.bot = bot -        self.url = ("https://www.hebcal.com/hebcal/?v=1&cfg=json&maj=on&min=on&mod=on&nx=on&" -                    "year=now&month=x&ss=on&mf=on&c=on&geo=geoname&geonameid=3448439&m=50&s=on")          self.hanukkah_days = []          self.hanukkah_months = []          self.hanukkah_years = [] @@ -25,17 +29,17 @@ class HanukkahEmbed(commands.Cog):      async def get_hanukkah_dates(self) -> List[str]:          """Gets the dates for hanukkah festival."""          hanukkah_dates = [] -        async with self.bot.http_session.get(self.url) as response: +        async with self.bot.http_session.get(HEBCAL_URL) as response:              json_data = await response.json() -        festivals = json_data['items'] +        festivals = json_data["items"]          for festival in festivals: -            if festival['title'].startswith('Chanukah'): -                date = festival['date'] +            if festival["title"].startswith("Chanukah"): +                date = festival["date"]                  hanukkah_dates.append(date)          return hanukkah_dates      @in_month(Month.DECEMBER) -    @commands.command(name='hanukkah', aliases=['chanukah']) +    @commands.command(name="hanukkah", aliases=("chanukah",))      async def hanukkah_festival(self, ctx: commands.Context) -> None:          """Tells you about the Hanukkah Festivaltime of festival, festival day, etc)."""          hanukkah_dates = await self.get_hanukkah_dates() @@ -54,49 +58,46 @@ class HanukkahEmbed(commands.Cog):          day = str(today.day)          month = str(today.month)          year = str(today.year) -        embed = Embed() -        embed.title = 'Hanukkah' -        embed.colour = Colours.blue +        embed = Embed(title="Hanukkah", colour=Colours.blue)          if day in self.hanukkah_days and month in self.hanukkah_months and year in self.hanukkah_years:              if int(day) == hanukkah_start_day:                  now = datetime.datetime.utcnow() -                now = str(now) -                hours = int(now[11:13]) + 4  # using only hours +                hours = now.hour + 4  # using only hours                  hanukkah_start_hour = 18                  if hours < hanukkah_start_hour: -                    embed.description = (f"Hanukkah hasnt started yet, " -                                         f"it will start in about {hanukkah_start_hour-hours} hour/s.") -                    return await ctx.send(embed=embed) +                    embed.description = ( +                        "Hanukkah hasnt started yet, " +                        f"it will start in about {hanukkah_start_hour - hours} hour/s." +                    ) +                    await ctx.send(embed=embed) +                    return                  elif hours > hanukkah_start_hour: -                    embed.description = (f'It is the starting day of Hanukkah ! ' -                                         f'Its been {hours-hanukkah_start_hour} hours hanukkah started !') -                    return await ctx.send(embed=embed) +                    embed.description = ( +                        "It is the starting day of Hanukkah! " +                        f"Its been {hours - hanukkah_start_hour} hours hanukkah started!" +                    ) +                    await ctx.send(embed=embed) +                    return              festival_day = self.hanukkah_days.index(day) -            number_suffixes = ['st', 'nd', 'rd', 'th'] -            suffix = '' -            if int(festival_day) == 1: -                suffix = number_suffixes[0] -            if int(festival_day) == 2: -                suffix = number_suffixes[1] -            if int(festival_day) == 3: -                suffix = number_suffixes[2] -            if int(festival_day) > 3: -                suffix = number_suffixes[3] -            message = '' -            for _ in range(1, festival_day + 1): -                message += ':menorah:' -            embed.description = f'It is the {festival_day}{suffix} day of Hanukkah ! \n {message}' +            number_suffixes = ["st", "nd", "rd", "th"] +            suffix = number_suffixes[festival_day - 1 if festival_day <= 3 else 3] +            message = ":menorah:" * festival_day +            embed.description = f"It is the {festival_day}{suffix} day of Hanukkah!\n{message}"              await ctx.send(embed=embed)          else:              if today < hanukkah_start: -                festival_starting_month = hanukkah_start.strftime('%B') -                embed.description = (f"Hanukkah has not started yet. " -                                     f"Hanukkah will start at sundown on {hanukkah_start_day}th " -                                     f"of {festival_starting_month}.") +                festival_starting_month = hanukkah_start.strftime("%B") +                embed.description = ( +                    f"Hanukkah has not started yet. " +                    f"Hanukkah will start at sundown on {hanukkah_start_day}th " +                    f"of {festival_starting_month}." +                )              else: -                festival_end_month = hanukkah_end.strftime('%B') -                embed.description = (f"Looks like you missed Hanukkah !" -                                     f"Hanukkah ended on {hanukkah_end_day}th of {festival_end_month}.") +                festival_end_month = hanukkah_end.strftime("%B") +                embed.description = ( +                    f"Looks like you missed Hanukkah!" +                    f"Hanukkah ended on {hanukkah_end_day}th of {festival_end_month}." +                )              await ctx.send(embed=embed) @@ -108,6 +109,6 @@ class HanukkahEmbed(commands.Cog):              self.hanukkah_years.append(date[0:4]) -def setup(bot: commands.Bot) -> None: -    """Cog load.""" +def setup(bot: Bot) -> None: +    """Load the Hanukkah Embed Cog."""      bot.add_cog(HanukkahEmbed(bot)) | 
