From 584d1e191446d02893df9ab5852fa8088e45cef2 Mon Sep 17 00:00:00 2001
From: Robert <Robert-Altner@t-online.de>
Date: Thu, 9 Jan 2020 03:26:59 +0100
Subject: [PATCH] added scheduling

---
 cogs/fun/schedule.py | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 cogs/fun/schedule.py

diff --git a/cogs/fun/schedule.py b/cogs/fun/schedule.py
new file mode 100644
index 0000000..4095885
--- /dev/null
+++ b/cogs/fun/schedule.py
@@ -0,0 +1,31 @@
+import discord
+from discord.ext import commands
+from datetime import datetime, timedelta
+from random import randrange
+
+def ceil_dt(dt, delta):
+    return dt + (datetime.min - dt) % delta
+
+def random_date(start, end):
+    """
+    This function will return a random datetime between two datetime 
+    objects.
+    """
+    delta = end - start
+    int_delta = (delta.days * 24 * 60 * 60) + delta.seconds
+    random_second = randrange(int_delta)
+    return start + timedelta(seconds=random_second)
+
+
+class Schedule(commands.Cog):
+
+    def __init__(self, client: discord.Client):
+        self.client = client
+
+    @commands.command(name="schedule", description="Schedules an event", usage="schedule <name>", aliases=["s"])
+    @commands.cooldown(1, 3)
+    async def schedule(self, ctx: commands.Context, *name: str):
+        await ctx.send(f"I scheduled \"{' '.join(name)}\" for **{ceil_dt(random_date(datetime.now(), datetime.now() + timedelta(days=7)), timedelta(minutes=15)).strftime('%d.%m.%Y %H:%M GMT')}**")
+
+def setup(client: discord.Client):
+    client.add_cog(Schedule(client))
\ No newline at end of file