Skip to content

Commit

Permalink
Send daily motivation to the devops team
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrisLovering committed Jun 27, 2024
1 parent 366f426 commit fe03436
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions arthur/exts/fun/motivation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
"""Send motivating messages to the devops team."""

import re
from datetime import UTC, datetime, time

import discord
from discord.ext import commands, tasks

from arthur.bot import KingArthur
from arthur.config import CONFIG

MOTIVATION_IMAGE_RE = re.compile(r"data-image=\"(https://assets\.amuniversal\.com/.+?)\"")
THE_CAT = "https://avatar.amuniversal.com/feature_avatars/ubadge_images/features/ga/mid_u-201701251612.png"
BASE_URL = "https://www.gocomics.com/garfield/"


class Motivation(commands.Cog):
"""Motivation is the key to productivity."""

def __init__(self, bot: KingArthur) -> None:
self.bot = bot
self.devops_channel = bot.get_channel(CONFIG.devops_channel_id)
self.send_daily_motivation.start()

@tasks.loop(time=time(hour=9))
async def send_daily_motivation(self) -> None:
"""Send motivation to the people who need it most."""
today_date = datetime.now(UTC).date().isoformat()
today_date_url_friendly = today_date.replace("-", "/")

async with self.bot.http_session.get(BASE_URL + today_date_url_friendly) as resp:
resp.raise_for_status()
raw_content = await resp.text()
image = MOTIVATION_IMAGE_RE.search(raw_content).group(1)

embed = discord.Embed(
title=f"Garfield: {today_date}",
url=BASE_URL + today_date_url_friendly,
colour=discord.Colour.orange(),
)
embed.set_author(name="GoComics.com", icon_url=THE_CAT, url=BASE_URL)
embed.set_image(url=image)
await self.devops_channel.send(embed=embed)


async def setup(bot: KingArthur) -> None:
"""Add cog to bot."""
await bot.add_cog(Motivation(bot))

0 comments on commit fe03436

Please sign in to comment.