1010load_dotenv ()
1111TOKEN = os .getenv ('DISCORD_BOT_TOKEN' )
1212CHANNEL_ID = int (os .getenv ('DISCORD_CHANNEL_ID' ))
13+ TIMEZONE = os .getenv ('LOCAL_TIMEZONE' , 'Europe/Berlin' )
1314
1415intents = discord .Intents .default ()
1516intents .messages = True
@@ -29,14 +30,13 @@ async def delete_old_messages():
2930 print (f'Kanal mit ID { CHANNEL_ID } nicht gefunden.' )
3031 return
3132
32- # Konvertiere `seven_days_ago` zu einem offset-aware datetime
3333 seven_days_ago = datetime .datetime .now (tz = datetime .timezone .utc ) - datetime .timedelta (days = 7 )
3434
3535 async for message in channel .history (limit = None ):
3636 if message .created_at < seven_days_ago :
3737 try :
3838 await message .delete ()
39- await asyncio .sleep (1 ) # Um Ratenbegrenzung zu vermeiden
39+ await asyncio .sleep (1 )
4040 except discord .Forbidden :
4141 print ('Fehler: Keine Berechtigung zum Löschen der Nachricht.' )
4242 except discord .HTTPException as e :
@@ -51,9 +51,10 @@ async def schedule_deletion():
5151async def before_schedule_deletion ():
5252 # Warten, bis der Bot bereit ist
5353 await bot .wait_until_ready ()
54- # Warte bis Mitternacht
55- now = datetime .datetime .now ()
56- next_midnight = datetime .datetime .combine (now .date () + datetime .timedelta (days = 1 ), datetime .time .min )
54+ # Lokale Zeitzone festlegen
55+ tz = pytz .timezone (TIMEZONE )
56+ now = datetime .datetime .now (tz )
57+ next_midnight = tz .localize (datetime .datetime .combine (now .date () + datetime .timedelta (days = 1 ), datetime .time .min ))
5758 await asyncio .sleep ((next_midnight - now ).total_seconds ())
5859
5960bot .run (TOKEN )
0 commit comments