aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/evergreen/uptime.py
blob: b390e7f7994305dfd16ef4e6d8bfab0634dd8acf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import logging

import arrow
from dateutil.relativedelta import relativedelta
from discord.ext import commands

from bot import start_time
from bot.bot import Bot

log = logging.getLogger(__name__)


class Uptime(commands.Cog):
    """A cog for posting the bot's uptime."""

    @commands.command(name="uptime")
    async def uptime(self, ctx: commands.Context) -> None:
        """Responds with the uptime of the bot."""
        difference = relativedelta(start_time - arrow.utcnow())
        uptime_string = start_time.shift(
            seconds=-difference.seconds,
            minutes=-difference.minutes,
            hours=-difference.hours,
            days=-difference.days
        ).humanize()
        await ctx.send(f"I started up {uptime_string}.")


def setup(bot: Bot) -> None:
    """Load the Uptime cog."""
    bot.add_cog(Uptime())