diff --git a/cogs/loops/daily_loop.py b/cogs/loops/daily_loop.py index 665647f..68681a9 100644 --- a/cogs/loops/daily_loop.py +++ b/cogs/loops/daily_loop.py @@ -54,6 +54,8 @@ class DailyLoop(commands.Cog, name="Daily Loop"): kandy: nextcord.User = await self.bot.fetch_user(239547993106284544) await kandy.send('Happy "Birthday"!') + await self.cakedays() + @daily_loop.before_loop async def before_loop(self): """ @@ -104,3 +106,23 @@ class DailyLoop(commands.Cog, name="Daily Loop"): with Session(engine) as session: to_add = session.scalars(stmt) birthday_list.extend(to_add.all()) + + async def cakedays(self) -> None: + """ + Loops through the guild's humans checking for joined_at dates that match today's date. Sends a message + saying happy cakeday. + """ + + today = datetime.today() + guild: nextcord.Guild = self.bot.get_guild(self.bot.config.params.guild_id) + announce_channel: nextcord.TextChannel = guild.get_channel(self.bot.config.params.announcement_category_id) + + cakedays: list[nextcord.Member] = [ + human for human in guild.humans if human.joined_at.month == today.month and human.joined_at.day == today.day + ] + + for member in cakedays: + years = today.year - member.joined_at.year + year_str = "years" if years > 1 else "year" + msg = f"Happy Cake day! <@{member.id}> joined the discord {years} {year_str} ago!" + await announce_channel.send(msg) diff --git a/config.py b/config.py index 9f31c11..8867357 100644 --- a/config.py +++ b/config.py @@ -12,7 +12,7 @@ class Params: active_category_id: int admin_channel_id: int # might want to rename this... - annoucement_category_id: int + announcement_category_id: int archive_channel_group_id: int clan_council_elect_role_id: int clan_council_role_id: int