diff options
Diffstat (limited to '')
| -rw-r--r-- | bot/seasons/christmas/hanukkah_embed | 110 | 
1 files changed, 110 insertions, 0 deletions
| diff --git a/bot/seasons/christmas/hanukkah_embed b/bot/seasons/christmas/hanukkah_embed new file mode 100644 index 00000000..de69c63a --- /dev/null +++ b/bot/seasons/christmas/hanukkah_embed @@ -0,0 +1,110 @@ +from discord.ext import commands +from discord import Embed +import requests +import datetime +import logging + + +log = logging.getLogger(__name__) + +HANUKKAH_DAYS = [] +HANUKKAH_MONTHS = [] +HANUKKAH_YEARS = [] + + +class HanukkahEmbed(commands.Cog): + +    def __init__(self, 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_dates = self.get_hanukkah_dates() + +    def get_hanukkah_dates(self): +        hanukkah_dates = [] +        r = requests.get(self.url) +        json_data = r.json() +        festivals = json_data['items'] +        for festival in festivals: +            if festival['title'].startswith('Chanukah'): +                date = festival['date'] +                hanukkah_dates.append(date) +        return hanukkah_dates + +    @commands.command(name='hanukkah', aliases=['chanukah']) +    async def hanukkah_festival(self, ctx): +        """ +        Hanukkah embed +        """ +        self.hanukkah_dates_split() + +        hanukkah_start_day = int(HANUKKAH_DAYS[0]) +        hanukkah_start_month = int(HANUKKAH_MONTHS[0]) +        hanukkah_start_year = int(HANUKKAH_YEARS[0]) +        hanukkah_end_day = int(HANUKKAH_DAYS[8]) +        hanukkah_end_month = int(HANUKKAH_MONTHS[8]) +        hanukkah_end_year = int(HANUKKAH_YEARS[8]) + +        hanukkah_start = datetime.date(hanukkah_start_year, hanukkah_start_month, hanukkah_start_day) +        hanukkah_end = datetime.date(hanukkah_end_year, hanukkah_end_month, hanukkah_end_day) +        # today = datetime.date.today() +        today = datetime.date(2019, 12, 24) +        day = str(today.day) +        month = str(today.month) +        year = str(today.year) +        embed = Embed() +        embed.title = 'Hanukkah Embed' +        embed.colour = 0x68c290 +        if day in HANUKKAH_DAYS and month in HANUKKAH_MONTHS and year in HANUKKAH_YEARS: +            if int(day) == hanukkah_start_day: +                now = datetime.datetime.utcnow() +                now = str(now) +                hours = int(now[11:13]) + 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) +                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) +            festival_day = 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 i in range(1, festival_day + 1): +                message += ':menorah:' +            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}.") +            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}.") + +            await ctx.send(embed=embed) + +    def hanukkah_dates_split(self): +        for date in self.hanukkah_dates: +            HANUKKAH_DAYS.append(date[8:10]) +            HANUKKAH_MONTHS.append(date[5:7]) +            HANUKKAH_YEARS.append(date[0:4]) + + +def setup(bot): +    bot.add_cog(HanukkahEmbed(bot)) +    log.info("AdventOfCode cog loaded") | 
