aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/seasons/christmas/hanukkah_embed110
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")