From 96e9b11bdf09e73c7036f715c1999e682bde58b3 Mon Sep 17 00:00:00 2001 From: tamservo Date: Mon, 8 Jan 2024 10:22:31 -0500 Subject: [PATCH] added iloveyoubot command --- alerts.db | Bin 0 -> 12288 bytes audio/bwoken.mp3 | Bin 0 -> 43642 bytes audio/no.mp3 | Bin 0 -> 29276 bytes create_alerts_db.py | 16 +++ races_backup.db | Bin 0 -> 16384 bytes robottas.py | 261 +++++++++++++++++++++++++++++++++++++++++++- schedule.db | Bin 0 -> 8192 bytes 7 files changed, 274 insertions(+), 3 deletions(-) create mode 100644 alerts.db create mode 100644 audio/bwoken.mp3 create mode 100644 audio/no.mp3 create mode 100755 create_alerts_db.py create mode 100644 races_backup.db create mode 100755 schedule.db diff --git a/alerts.db b/alerts.db new file mode 100644 index 0000000000000000000000000000000000000000..20b745c67a145af3a7ddaad531b07a957dcaa7cf GIT binary patch literal 12288 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 z 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

}aMv@kR;!9XN;tb-03 z7{lb+p={C*?_-1LI|(Ok(DWEu8M=x8MJ~;+71U=GKi$j_-mrrAX?h~`yTI{M}FGxc*8IOc+RCQL^Jwt*N*q1~d()l$m zoCWtzTtf3l$|2NJkTs(%>rb-JtBgZI+!`@q7guam%{-!@KXUTf5}p7S+8_S& z1J#TVV}u9Hq>q8oE9=-Kw)@hA2V{L2qi?BW^I1rry0?WPDw6iGdOmgq88cyOqcQg3 zMhW@hE*jnwq8I34#`;I#QC>jt3(3i667>4fM%Cl}bdxEv*7Za0EJMax?qKT>TZ13& hh-bHG+HmpO`{DA(kcKKwdxD&P6GEDB8m@fX{{t`)Bu4-M literal 0 HcmV?d00001 diff --git a/audio/no.mp3 b/audio/no.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7ab2aa9ef79bc81f4ffe8ead2dd3d95677b60517 GIT binary patch literal 29276 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

Nfu8&Ou9|LD6%BI}QArywtsguK=ZA+|AL4cd z;DkIMYlHsGewl_M0f0MaXaK+xJp%=PF;#d-9?mT0Rh;;RKpq zh1T=7oHmNR%DVXL=~JU2y&JabG#1ybZC>JfF=8lkW>CuKRMg?GaIn29^jS`}v zF}U|28PLaMt1qdpnCe$WvS1XwpA>IrdYS*q^3tWXx)yn;{08oL*FG6X z2Bu-u8+Cqbmb{5vuhOGeJ5FTkpz0HSkBU)=5| z)8wMMU$1826BJaGn=lm{4xHstOFem8jfH-R$y^WYsomiS9;Kl z;9%ty^WBGMOG!i%U+78{f=K{dA-PoIP8dNr48iw59>3#Gt01Jp84_*(xe(+3*u)WF$ksLa%O7Dn2ny%)js z6#czx2nM!7DOm>LGLBWok9JAhp{f;j=PqzZAKQMJ$g*fQrCl0%d~%hfDx4z)=H zT}?ch$(c5*#+RV&h1l9(fk%s63Q;xPb<$Uh0WQ!RJ3eGrZ!QyZ@+RIc(X_z-`az~V z-+6C4?naQ;y|~enp^2n!JTb8w75!?xGo#-tiuEbcK5C@swM)qQ>$#mgV<0<#;2w7Y zT--6)XD{Ka1aP%1T8)WqHEgr>j8`&?4~W_w=hhaD^Xtp<{6E^XV;4CRKcuR^t$>!*w?rUt49&x(}QCIq_yuH;+32!SzK%QE5GR*yIFhqHfMSFN=L_CM*vnHXiOpmbM!P1^IZZw(QafQEVH;08P-CBl!bF}+=6)9W z4ico-qHb4dE8>(jWLTShtV9t)LPbE>vsk4yW?NEs+hZZEauzZD>W6JzcZ^leSe_ort=?PiimQZO3X8S3(#eNxtdS( zERc8f5w_h)uY^^}D^DZ>X!_!(A_4J4seyE3h$f#@Gqu|!uCtpb4Y;8)1t<~thBZ>i#wSrLukat3@vJ^L@818DDti1Nl8E!|s z!|K2!UiD*hFZIkApSgbv;fepmWFNuX6F*Xc7L)&KnZQT2x0w$#5d4=DW>%!j((>iP6zDab$`MPNa-s#YYghN0_&$>3i{? zsU}p>cs*(}BID1c-fIfbhCPsRy}hC5;$gT?IC<+83mPN1_XIMcPA+0}#@OG+7sBv^ z!hCp!TmjK3-F7L$*#9HvFYCF?i9_#mN1yS(CC~CCe{UJYLE=X8ciC|G4NINHTdy^C zu~wfW#7U`d@Hs-$Y_Zk8pbbgiHB7{7$3BvamcKm=Ip)qSjFG=m8wH_I%!hldD z9Q+G)FV?ng9oV`3a#Y9EaKVeug@*y8!P}960m1+ZTEia-97!hsA?bITa@a~36S%%` z_yoz5B=L_{er*`!Vo9d~RJ+ ztNax|o*(8<1=o!mPR%j4!kW?^-#Mjt_s;`O(1^eF2x`I?FbqPo)rWr3KGiWB@w@XE z?Tt)1^wcN6J zHSqD{4Sg0->vtst`BACacp|>M#WrV4fMg-5PCFJ>A*iy#Y{ibr+$O6-87Dc9T=LeG zi%Hl65`2FQ3Jb8tA|-mj1j9)T@S=V&ATv4Hae7+6@9(hTeJ%!};-TM9Vm5z}is>3l z1wAQym0bN~@zcn)SAk1v^%A+vPSl5DXdW$#x`bMa0kOy17qEWJqbcd`tWFpjfW8Gp z1NoKoHu-qYtRog|RHJJZDL_QXw3YEIyz=7=-BcA7^987TS!o=ScKLiYg^9_7SG~x4 zm5>W%iqV95Ao(0Fp~kcprqSD6zVL15*9�e&=)(yoragFG~X%-&gy!l=5AeQEO^u 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 literal 0 HcmV?d00001 diff --git a/create_alerts_db.py b/create_alerts_db.py new file mode 100755 index 0000000..90196ae --- /dev/null +++ b/create_alerts_db.py @@ -0,0 +1,16 @@ +#!/usr/bin/python3 +import sqlite3 + +if __name__ == '__main__': + con = sqlite3.connect('alerts.db') + cur = con.cursor() + + cur.execute("""drop table alert_schedule""") + cur.execute("""drop table alert_channels""") + + cur.execute("""create table alert_schedule( id integer primary key, type, day, hour, minute, last_sent );""") + cur.execute("""create table alert_channels( id integer primary key, type, channel_id);""") + con.commit() + cur.close() + con.close() + diff --git a/races_backup.db b/races_backup.db new file mode 100644 index 0000000000000000000000000000000000000000..459e2357d37262c77a96a893cd504c6796760b10 GIT binary patch literal 16384 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 F{s$4_tvLVy literal 0 HcmV?d00001 diff --git a/robottas.py b/robottas.py index d5440bd..f34aa26 100755 --- a/robottas.py +++ b/robottas.py @@ -4,15 +4,17 @@ import asyncio import collections.abc import datetime import json +import logging import os import random import re import sqlite3 +import sys from subprocess import Popen import time import discord -from discord.ext import commands +from discord.ext import commands, tasks class Robottas(commands.Bot): @@ -36,6 +38,7 @@ class Robottas(commands.Bot): # End section adapted from FastF1 async def on_ready(self): + self._alert_loop.start() print('Logged in as: {}'.format(self.user)) def run_robottas(self): @@ -55,6 +58,15 @@ class Robottas(commands.Bot): df = discord.File(handle, filename=file_name) await ctx.send(file=df) + # send and image and also play audio if it is a voice channel + async def send_audio(self, ctx, title, name): + file_name = os.path.dirname(os.path.realpath(__file__)) + file_name = os.path.join(file_name, name) + with open(file_name, "rb") as handle: + df = discord.File(handle, filename=title) + await ctx.send(file=df) + + def send_delay_message(self, message): self.message_queue.append((time.time(), message)) @@ -503,6 +515,75 @@ class Robottas(commands.Bot): self.collector_proc.poll() != None: await self.start_collect() + + + # Loop that will handle checking if there are alerts scheduled for + # this day, hour, minute, and send the alerts to channels that are registered + @tasks.loop(seconds=30) + async def _alert_loop(self): + try: + # Check to see if there is an alert scheduled for this day, hour miniute + current_dt = datetime.datetime.now() + (day, hr, mn) = (current_dt.weekday(), current_dt.hour, current_dt.minute) + + con = sqlite3.connect('alerts.db') + cur = con.cursor() + + query = "Select type, day, hour, minute, last_sent from alert_schedule" + cur.execute(query) + rows = cur.fetchall() + + for row in rows: + (db_type, db_day, db_hr, db_mn, last_sent) = row + + # Make sure last sent is > than 1 minute + if last_sent is not None and last_sent != "": + last_dt = datetime.datetime.fromisoformat(last_sent) + + if last_dt.day == current_dt.day and \ + last_dt.hour == current_dt.hour and \ + last_dt.minute == current_dt.minute and \ + last_dt.month == current_dt.month and \ + last_dt.year == current_dt.year: + # If we haven't changed even a minute since last run, then skip this run + continue + + if day == db_day and \ + hr == db_hr and \ + mn == db_mn: + # We want to send out alerts for this type to any channels registered + + # Get channels registered for that type + query = "Select channel_id from alert_channels where type = ?" + cur.execute(query, (db_type,)) + + # For each registered channel, send the alert. + channel_ids = cur.fetchall() + for channel_id in channel_ids: + channel = self.get_channel(int(channel_id[0])) + + if db_type == 'race': + await self.report_next_race(channel) + + if db_type == 'event': + await self.report_next_event(channel) + + # Record that we sent this alert out at this time + query = "Update alert_schedule set last_sent = ? where " + \ + "type = ? and " + \ + "day = ? and " + \ + "hour = ? and " + \ + "minute = ?" + cur.execute(query, (current_dt.isoformat(), db_type, db_day, db_hr, db_mn)) + con.commit() + + cur.close() + con.close() + + except Exception as e: + print(f"Error sending alert {e['Message']}", file=sys.stderr) + + @staticmethod def get_token(token_file): with open(token_file) as tok: @@ -553,7 +634,7 @@ class Robottas(commands.Bot): t2 = datetime.datetime.fromisoformat(row[3]) delta = t2 - t1 - message = f"The next event is the {row[1]} which is {delta} from now." + message = f"The next event is the {row[1]} - {row[2]} which is {delta} from now." await ctx.send(message) break # There should only be one row anyway @@ -589,6 +670,106 @@ class Robottas(commands.Bot): except: await ctx.send("Sorry, hit the wall tring to find the next race.") + # Register to alert for next race + + async def register_next_race_alerts(self, ctx): + try: + # Get the id of the channel from the ctx + channel_id = ctx.channel.id + + # Save this id to the alert_channels in the alert db. + con = sqlite3.connect('alerts.db') + cur = con.cursor() + + # See if there is already a record + query = "SELECT COUNT(*) FROM alert_channels WHERE type = ? AND channel_id = ?" + cur.execute(query, ("race", channel_id)) + rows = cur.fetchall() + count = rows[0][0] + + if count > 0: + await ctx.send("This thread is already registered to get race alerts.") + else: + query = "INSERT INTO alert_channels (type, channel_id) VALUES (?, ?)" + cur.execute(query, ("race", channel_id)) + con.commit() + + await ctx.send("This channel has been registered to receive upcoming race alerts.") + + cur.close() + con.close() + + except: + if cur is not None: + cur.close() + + if con is not None: + con.close() + + + # Register to alert for next event + + async def register_next_event_alerts(self, ctx): + try: + # Get the id of the channel from the ctx + channel_id = ctx.channel.id + + # Save this id to the alert channels in the alert db + con = sqlite3.connect('alerts.db') + cur = con.cursor() + + # See if there is already a record + + query = "SELECT COUNT(*) FROM alert_channels WHERE type = ? and channel_id = ?" + cur.execute(query, ("event", channel_id)) + rows = cur.fetchall() + count = rows[0][0] + + if count > 0: + await ctx.send("This thread is already registered to get event alerts.") + else: + query = "INSERT INTO alert_channels (type, channel_id) VALUES (?, ?)" + cur.execute(query, ("event", channel_id)) + con.commit() + + await ctx.send("This channel has been registered to receive upcoming event alerts.") + + cur.close() + con.close() + + except: + if cur is not None: + cur.close() + + if con is not None: + con.close() + + + # Unregister channel from alerts + + async def unregister_alerts(self, ctx): + try: + # Get the channel id from the ctx + channel_id = ctx.channel.id + + # Remove records with this id from the db + con = sqlite3.connect('alerts.db') + cur = con.cursor() + + query = "DELETE FROM alert_channels WHERE channel_id = ?" + cur.execute(query, (channel_id,)) + con.commit() + + cur.close() + con.close() + + except: + if cur is not None: + cur.close() + + if con is not None: + con.close() + def __init__(self): # Set debug or not @@ -743,6 +924,8 @@ class Robottas(commands.Bot): await ctx.send("commands: \n" + "!rbhelp - Print this help message " + "(but you knew that already)\n" + + "!next_event - Prints time until the next event.\n" + + "!next_race - Prints time until the next race.\n" + "!rbname - I will tell you my name.\n" + "!rbroot - I will tell you who I root for.\n" + "!rbreport - I will start race reporting in this channel. " + @@ -754,9 +937,23 @@ class Robottas(commands.Bot): "!q2cut - Show drivers in Q2 cut positions.\n" + "!rbdelay - Set the race messaging delay in seconds.\n" + "The following display race control messages:\n" + + " !animal\n" + + " !bwoken\n" + " !calm\n" + " !forecast\n" + - " !undercut\n" + " !grandma\n" + + " !grass\n" + + " !no\n" + + " !noengine\n" + + " !pants\n" + + " !paddock\n" + + " !penalty\n" + + " !stupid\n" + + " !undercut\n" + + "The following register / unregister scheduled next race / event messages.\n" + + "!register_next_race_alerts - get an alert for the next race on Monday.\n" + + "!register_next_event_alerts - get an alert for the next event on Monday.\n" + + "!unregister_alerts - stop getting alerts on this channel.\n" ) @self.command() @@ -867,6 +1064,10 @@ class Robottas(commands.Bot): async def gp2(ctx): await ctx.send("GP2 engine! GP2! ARGHHH! " + self.name_dict["ALO"]) + @self.command() + async def iloveyoubot(ctx): + await ctx.send(f"I am incapable of love, but for you, {ctx.author.display_name}, I will make an exception.") + @self.command() async def quote(ctx): try: @@ -950,18 +1151,57 @@ class Robottas(commands.Bot): async def calm(ctx): await self.send_image(ctx, "images/calm.png") + @self.command() + async def grandma(ctx): + await self.send_image(ctx, "images/grandma.png") + + @self.command() + async def grass(ctx): + await self.send_image(ctx, "images/grass.png") + @self.command() async def forecast(ctx): await self.send_image(ctx, "images/forecast.png") + @self.command() + async def no(ctx): + await self.send_image(ctx, "images/no.png") + await self.send_audio(ctx, "no.mp3", "audio/no.mp3") + + @self.command() + async def noengine(ctx): + await self.send_image(ctx, "images/noengine.png") + + @self.command() + async def pants(ctx): + await self.send_image(ctx, "images/pants.png") + + @self.command() + async def paddock(ctx): + await self.send_image(ctx, "images/paddock.png") + @self.command() async def penalty(ctx): await self.send_image(ctx, "images/penalty.png") + @self.command() + async def stupid(ctx): + await self.send_image(ctx, "images/stupid.png") + @self.command() async def undercut(ctx): await self.send_image(ctx, "images/undercut.png") + @self.command() + async def animal(ctx): + await self.send_image(ctx, "images/animal.png") + + + @self.command() + async def bwoken(ctx): + await self.send_image(ctx, "images/bwoken.png") + await self.send_audio(ctx, "bwoken.mp3", "audio/bwoken.mp3") + ## Calendar Commands # Give days, hours, minutes until the next event @@ -974,6 +1214,21 @@ class Robottas(commands.Bot): async def next_race(ctx): await self.report_next_race(ctx) + # Register to get monday next race alerts + @self.command() + async def register_next_race_alerts(ctx): + await self.register_next_race_alerts(ctx) + + # Register to get monday next event alerts + @self.command() + async def register_next_event_alerts(ctx): + await self.register_next_event_alerts(ctx) + + # Unregister to get monday alerts + @self.command() + async def unregister_alerts(ctx): + await self.unregister_alerts(ctx) + if __name__ == '__main__': rb = Robottas() diff --git a/schedule.db b/schedule.db new file mode 100755 index 0000000000000000000000000000000000000000..05822f7dfe253cc5489ea9cc8486dc2f03609201 GIT binary patch literal 8192 zcmeH~%Wl&^6ow~BOUTuwQpBQ)I9VV;l^|bA3tcfu+z^qg?L?shRnx?6Ez+d2CyOjt zbc0wS@dm7s;CZ@Y$y2akax1wN6eSzfv24v)wm<#zotcrWmva_1;iPS!6AB92KrR=0 z0e}$NW|x~?qr<~GYoi<1y2ko9b+^%zSD!<@mxW8jPJVC$+yFPg4R8b805`x5a0A=` zH^2>W1Gmk<$NqrdyS(?KQP*XjlH;c7)X&UD=TGZSX(~2UFmN)b!szKEuo_^ssCjDI zaA8~L#O}g7vl|C$(WV&($8;R4-8!P(3wGBa)I4%1v1z>7t`o|h#KCTNS`B#I`#0b8 zU3r9W!fRnY{5@O?yF*_?wcxMdmtZ>ZGw>;}>;K{Z;E(&RZd-x)c)0;?fE(ZjxB+f} z8~C3LXq#R{BFY2dps3|5ISdkL#hh9LT+s~;=d!o}84VZGP|~tBkVSb%BXzUaCPXD6 z?|`_wFN*BM9f#VaX%VG%k1=BlG0PqHOyu9I+aA)&|yr>>g9*$K_H&USEN;(Tz!^wY?O?(d0-axKSIt>f3O^z)h zzX>vKY%%U^>BMLA>4yPEk1j@^E?AX^(V?84OdB$oY}-`NmVZ+#ug&ZDWNpOHSYB1@*+uRipQwKxjag1 ztS?EG6Ed63Qx1%^l~AX$qO!+}-fm5(Ws5DJDzeQ{P3S7tiv=)L-N+U){jJh49eTZ| ev7`z}@?hBw$1kF?dr2mn0W(b3l1x^oDdunKd(iO! literal 0 HcmV?d00001