1111from src .embed_creator import create_event_embed
1212
1313logging .basicConfig (level = logging .INFO )
14- logging .getLogger (' discord.client' ).setLevel (logging .ERROR )
14+ logging .getLogger (" discord.client" ).setLevel (logging .ERROR )
1515logger = logging .getLogger (__name__ )
1616
1717bot = discord .Client (intents = discord .Intents .default ())
1818
1919known_events = load_known_events ()
2020
21+
2122@bot .event
2223async def on_ready ():
23- logger .info (f' Bot logged in: { bot .user } ' )
24+ logger .info (f" Bot logged in: { bot .user } " )
2425 if known_events :
25- logger .info (f"Loading data/known_events.json for { len (known_events )} known competitions" )
26+ logger .info (
27+ f"Loading data/known_events.json for { len (known_events )} known competitions"
28+ )
2629 else :
27- logger .info ("No known competitions found, creating new file data/known_events.json" )
30+ logger .info (
31+ "No known competitions found, creating new file data/known_events.json"
32+ )
2833 save_known_events (set ())
2934 check_new_events .start ()
3035
36+
3137@tasks .loop (minutes = CHECK_INTERVAL )
3238async def check_new_events ():
3339 global known_events
34-
40+
3541 events = await fetch_ctf_events ()
36-
42+
3743 channel_name = ANNOUNCEMENT_CHANNEL_ID
3844 if not channel_name :
3945 logger .error ("Please set ANNOUNCEMENT_CHANNEL_ID in .env file" )
4046 logger .error ("For example: ANNOUNCEMENT_CHANNEL_ID=ctftime" )
4147 logger .error ("Please check if the .env file is correctly set" )
4248 await bot .close ()
4349 return
44-
50+
4551 channel = None
4652 for guild in bot .guilds :
4753 for text_channel in guild .text_channels :
@@ -50,7 +56,7 @@ async def check_new_events():
5056 break
5157 if channel :
5258 break
53-
59+
5460 if not channel :
5561 logger .error (f"Can't find channel named '{ channel_name } '" )
5662 logger .error (f"Please check:" )
@@ -59,10 +65,10 @@ async def check_new_events():
5965 logger .error (f"3. The channel exists in the server where the Bot is located" )
6066 await bot .close ()
6167 return
62-
68+
6369 new_events_found = False
6470 for event in events :
65- event_id = event ['id' ]
71+ event_id = event ["id" ]
6672 if event_id not in known_events :
6773 known_events .add (event_id )
6874 new_events_found = True
@@ -73,21 +79,24 @@ async def check_new_events():
7379 logger .info (f"Sent new event notification: { event ['title' ]} " )
7480 except Exception as e :
7581 logger .error (f"Failed to send notification: { e } " )
76-
82+
7783 if new_events_found :
7884 save_known_events (known_events )
7985
86+
8087@check_new_events .before_loop
8188async def before_check ():
8289 await bot .wait_until_ready ()
8390
91+
8492def main ():
8593 if not DISCORD_BOT_TOKEN :
8694 print ("Please set DISCORD_BOT_TOKEN in .env file" )
8795 exit (1 )
88-
96+
8997 print ("Start CTF Bot..." )
9098 bot .run (DISCORD_BOT_TOKEN )
9199
100+
92101if __name__ == "__main__" :
93- main ()
102+ main ()
0 commit comments