Hallo und vielen Dank für die Mühe mit den ausführlichen Verbesserungshinweisen und auch vorgelegten Code. Diesen habe ich gleich einmal gestartet, folgende Ausgabe bekomme ich bei dem Start, trotz des Tracebacks stürzt das Skript aber nicht ab. Allerdings funktioniert es auch nicht, wie es soll. Zeitpunkte, die am selben Tag aber in der Vergangenheit liegen, lösen eine Benachrichtigung in Discord aus und der gewünschte Testzeitpunkt, den ich eigentlich erwarten würde, löst keine Benachrichtigung aus. Das wird da dran liegen, dass du die Zeitmechanik und die Zeitzonen geändert hast.
[2024-04-17 15:58:34] [INFO ] discord.client: logging in using static token
[2024-04-17 15:58:35] [INFO ] discord.gateway: Shard ID None has connected to Gateway (Session ID: 22ea001c71caa1f5b275f8d0bdeb799a).
[Event(time=1713347940.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, set(), datetime.timedelta(seconds=7200), {'system': 'Testsystem', 'kategorie': 1, 'ressource': 'Testxyz', 'date': 'Mittwoch 13:59', 'other_data': 'Quantenteilchen, Forschungsverstärker', 'priority': 1}, datetime.datetime(2024, 4, 17, 13, 59, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={}),
Event(time=1713333600.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, set(), datetime.timedelta(seconds=7200), {'system': 'Otima', 'kategorie': 1, 'ressource': 'Parstahl, Iso2', 'date': 'Mittwoch 10:00', 'other_data': 'Quantenteilchen, Forschungsverstärker', 'priority': 0}, datetime.datetime(2024, 4, 17, 10, 0, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={}),
Event(time=1713434400.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, set(), datetime.timedelta(seconds=7200), {'system': 'Aonad', 'kategorie': 1, 'ressource': 'Tritanium, Iso2', 'date': 'Sonntag 14:00', 'other_data': 'Quantenteilchen, Gasabbauverstärker', 'priority': 0}, datetime.datetime(2024, 4, 18, 14, 0, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={}),
Event(time=1713423600.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, set(), datetime.timedelta(seconds=7200), {'system': 'Ruhe', 'kategorie': 1, 'ressource': 'Iso 1 + 2', 'date': 'Freitag 11:00', 'other_data': 'Quantenteilchen, Ablenkungsverstärker', 'priority': 0}, datetime.datetime(2024, 4, 18, 11, 0, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={}),
Event(time=1713416400.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, set(), datetime.timedelta(seconds=7200), {'system': 'Comst', 'kategorie': 1, 'ressource': 'Iso 1 + 2', 'date': 'Freitag 9:00', 'other_data': 'Quantenteilchen, Treffsicherheitsverstärker', 'priority': 0}, datetime.datetime(2024, 4, 18, 9, 0, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={}),
Event(time=1713427200.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, set(), datetime.timedelta(seconds=7200), {'system': 'Burran', 'kategorie': 2, 'ressource': 'Erz*3, Iso3', 'date': 'Donnerstag 12:00', 'other_data': 'Surraxteilchen, Offizierverstärker, Monaveenteile', 'priority': 0}, datetime.datetime(2024, 4, 18, 12, 0, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={}),
Event(time=1713340800.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, set(), datetime.timedelta(seconds=7200), {'system': 'Thaylen', 'kategorie': 1, 'ressource': 'Dilithium, Iso2', 'date': 'Mittwoch 12:00', 'other_data': 'Quantenteilchen, Armadakampfverstärker, Kinetische Waffenverstärker', 'priority': 1}, datetime.datetime(2024, 4, 17, 12, 0, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={}),
Event(time=1713340800.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, set(), datetime.timedelta(seconds=7200), {'system': 'Roshar', 'kategorie': 2, 'ressource': 'Erz*4, Iso3', 'date': 'Mittwoch 12:00', 'other_data': 'Quantenteilchen, Forschungsverstärker, Monaveen Konstruktionsstätte', 'priority': 1}, datetime.datetime(2024, 4, 17, 12, 0, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={})]
Event(time=1713333600.0, priority=1, action=<function send_reminder_callback at 0x03483A00>, argument=(<sched.scheduler object at 0x034C1B08>, {<Task pending name='Task-11' coro=<send_reminder() running at C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py:45> cb=[set.discard()]>}, datetime.timedelta(seconds=7200), {'system': 'Otima', 'kategorie': 1, 'ressource': 'Parstahl, Iso2', 'date': 'Mittwoch 10:00', 'other_data': 'Quantenteilchen, Forschungsverstärker', 'priority': 0}, datetime.datetime(2024, 4, 17, 10, 0, tzinfo=<DstTzInfo 'Europe/Berlin' CEST+2:00:00 DST>)), kwargs={})
[2024-04-17 15:58:37] [ERROR ] discord.client: Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\venv\lib\site-packages\discord\client.py", line 441, in _run_event
await coro(*args, **kwargs)
File "C:\Users\***\Nextcloud\P_Python\stfc_gebietsassistent\standalone_test.py", line 137, in on_ready
await asyncio.sleep(scheduler.run(blocking=False))
File "C:\Users\***\AppData\Local\Programs\Python\Python38-32\lib\sched.py", line 152, in run
delayfunc(0) # Let other threads run
TypeError: 'NoneType' object is not callable
Display More
Das ich auf alle Absatzblöcke eingehe und versuche bei mir zu ändern, bzw. deine Vorlage anzupassen, dass sie meinen Wünschen entspricht, dafür fehlt mir heute die Zeit. Fußball UCL ist ja heute .... Damit werde ich dann morgen beginnen.
Ja, die Zeitangaben in der Toml Datei sind UTC, da sie so auch aus der entnommenen Quelle vorlegen und dann kann ich das 1:1 übernehmen und muss das auch nicht halbjährlich ändern.
Das liegt daran, dass alles was ich in utils.py ausgelagert habe von einem weiteren unabhängigen Skript verwendet wird. Die Funktion wird also benötigt, dass ich jedoch den redundanten Codeteil auslagern kann ist ein richtiger und sinnvoller Tipp. Zudem erwähnten weiteren Skript habt ihr sogar auch schonmal Hilfestellungen gegeben, und zwar hier. Auch werden noch weitere, bisher noch nicht existierende Skripte folgen.