From 31fea018751668325e249a04c116a1d09937c7b2 Mon Sep 17 00:00:00 2001 From: Kaaninchen <124433727+kaaninchen@users.noreply.github.com> Date: Sat, 18 Jul 2026 00:08:14 +0200 Subject: [PATCH] =?UTF-8?q?=C3=9Cberspringe=20Verbindungen=20welche=20nich?= =?UTF-8?q?t=20ihre=20Ankunftszeit=20angeben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/handlers.py | 40 +++++++++++++++++++++++----------------- src/utils.py | 1 - 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/handlers.py b/src/handlers.py index 3679367..ecfe9f5 100644 --- a/src/handlers.py +++ b/src/handlers.py @@ -7,7 +7,7 @@ from src.utils import random_connection, get_train_info, logger current = None _scheduled_task: asyncio.Task | None = None -async def rename_vc(bot: discord.Bot, scheduled = False) -> bool: +async def rename_vc(bot: discord.Bot, scheduled=False) -> bool: global current, train_name, train_info, _scheduled_task guild = bot.get_guild(int(config["server"])) @@ -19,30 +19,36 @@ async def rename_vc(bot: discord.Bot, scheduled = False) -> bool: if not isinstance(channel, discord.VoiceChannel): logger(f"Es konnte kein VC mit der ID {config['vc']} auf dem Server gefunden werden") return False - - current = random_connection() - train_type = current['train'].split()[0] - print(train_type) - if train_type in ("IC", "ICE", "NJ", "ES", "DZ"): # Diese Züge haben ihre normalen Namen, nicht sowas wie RE RE7 sondern ICE 781 zb - train = current['train'] - train_ID = current['train'].split()[1] - else: - train = current['train'].split()[1] - train_ID = current['train_number'] - train_info = get_train_info(station=current['station'], train_ID=train_ID, train_type=train_type) + while True: + current = random_connection() + train_type = current['train'].split()[0] + + if train_type in ("IC", "ICE", "NJ", "ES", "DZ", "RJ"): + train = current['train'] + train_ID = current['train'].split()[1] + else: + train = current['train'].split()[1] + train_ID = current['train_number'] + + train_info = get_train_info(station=current['station'], train_ID=train_ID, train_type=train_type) + + if train_info: + break + + logger(f"Keine Ankunftszeit für {current['train']} verfügbar, versuche neue Verbindung...") + train_name = f"{train} nach {current['destination']}" if not scheduled and _scheduled_task and not _scheduled_task.done(): - _scheduled_task.cancel() - - if train_info: - _scheduled_task = asyncio.create_task(_schedule_next_umstieg(bot, train_info["arrival"])) + _scheduled_task.cancel() + + _scheduled_task = asyncio.create_task(_schedule_next_umstieg(bot, train_info["arrival"])) print("-----------------------------------------") logger(f"Umstieg: {train_name} von {current['station']}") logger(f"Wenn der Name nicht geändert wird bin ich im Cooldown") - await channel.edit(name=f"{config['formatting']}{train_name}",) + await channel.edit(name=f"{config['formatting']}{train_name}") logger(f"Name geändert!") return True diff --git a/src/utils.py b/src/utils.py index fe8b8f6..83e21ef 100644 --- a/src/utils.py +++ b/src/utils.py @@ -54,7 +54,6 @@ def get_train_info(station, train_ID, train_type): dep = data.get("departure", []) arrival_iso = dep["route_post_diff"][-1]["sched_arr"] - print(dep["operators"]) return { "arrival": arrival_iso, "operators": dep["operators"]