diff --git a/src/api/transitous.py b/src/api/transitous.py index 9908508..888e702 100644 --- a/src/api/transitous.py +++ b/src/api/transitous.py @@ -1,8 +1,7 @@ -import json import requests import random -from src.utils import logger, config +from src.utils import logger, config, get_train_name stations = config["stations"] blacklist = config["blacklist"] @@ -92,9 +91,12 @@ def get_trip_details(trip_id: str) -> dict: trip_to = legs["tripTo"]["name"] start_time = legs["startTime"] end_time = legs["endTime"] + mode = legs["mode"] + train_name = get_train_name(display_name, mode) + trip_details = { - "long_name": f"{display_name} nach {trip_to} von {trip_from}", + "long_name": f"{train_name} nach {trip_to} von {trip_from}", "short_name": display_name, "from": trip_from, "to": trip_to, @@ -103,7 +105,7 @@ def get_trip_details(trip_id: str) -> dict: "duration": legs["duration"], "start_time": start_time, "end_time": end_time, - "mode": legs["mode"], + "mode": mode, "stops": {} } diff --git a/src/data/emojis.py b/src/data/emojis.py index 566116b..79175bb 100644 --- a/src/data/emojis.py +++ b/src/data/emojis.py @@ -1,18 +1,7 @@ emoji_list = { - "Fallback": "🚉", - "Nahverkehr": "🚃", - "Höchstgeschwindigkeit": "🚄", - "Bus": "🚎" -} - -train_types = { # Unvollständig! - "ICE": emoji_list["Höchstgeschwindigkeit"], - "TGV": emoji_list["Höchstgeschwindigkeit"], - - "RE": emoji_list["Nahverkehr"], - "RB": emoji_list["Nahverkehr"], - "ARV": emoji_list["Nahverkehr"], - "BRB": emoji_list["Nahverkehr"], - - "Bus": emoji_list["Bus"] + "Fallback": "💺", + "BUS": "🚎", + "Tram": "🚈", + "REGIONAL_RAIL": "🚊", + "HIGHSPEED_RAIL": "🚅" } \ No newline at end of file diff --git a/src/dc/handlers.py b/src/dc/handlers.py index 5d750ec..b22e348 100644 --- a/src/dc/handlers.py +++ b/src/dc/handlers.py @@ -1,8 +1,9 @@ import discord import asyncio +from datetime import datetime from src.api import transitous -from src.utils import logger +from src.utils import logger, channel_formatting _scheduled_task: asyncio.Task | None = None @@ -14,13 +15,17 @@ async def rename_vc(bot: discord.Bot, voice_channel, from_scheduler: bool = Fals trip_id = transitous.get_random_connection(station_id) trip = transitous.get_trip_details(trip_id) - train_name = trip["long_name"] - + arrival = datetime.fromisoformat(trip["end_time"]) + long_name = trip["long_name"] + print("-----------------") - logger(f"Umstieg: {train_name}") + logger(f"Umstieg: {long_name}, Ankunft: {arrival}") logger(f"Betreiber: {trip["agency"]}, Typ: {trip["mode"]}") - logger(f"Sprachkanal wird geändert, wenn nichts passiert bin ich im cooldown (warte einen moment!)") + logger(f"Versuche Namen zu ändern, wenn nichts passiert bin ich im cooldown... (warte bis zu 10min!)") + + formatting = channel_formatting(trip["mode"]) + await voice_channel.edit(name=f"{formatting}{long_name}") + await voice_channel.set_status(f"Ankunft um {arrival.strftime('%H:%M')}") - await voice_channel.edit(name=train_name) logger(f"Name geändert!") diff --git a/src/utils.py b/src/utils.py index 11d7f2c..640901b 100644 --- a/src/utils.py +++ b/src/utils.py @@ -2,6 +2,8 @@ import json import os from datetime import datetime +from src.data.emojis import emoji_list + with open("config.json", "r") as file: config = json.load(file) @@ -10,4 +12,22 @@ def logger(msg, log_type="info") -> str: current_time = datetime.now().strftime('%X') print(f"{current_time}: {status}: {msg}") if status == "FATAL": - os._exit(1) \ No newline at end of file + os._exit(1) + +def channel_formatting(mode: str) -> str: + formatting = config.get("formatting", "") + + if config.get("emojis", True): + emoji = emoji_list.get(mode) + if emoji is None: + emoji = emoji_list.get("Fallback") + + return f"{emoji}{formatting}" + +def get_train_name(train_name: str, mode: str) -> str: + if train_name.isdigit(): + train = f"{mode.capitalize()} {train_name}" + else: + train = train_name + + return train \ No newline at end of file