transitous rewrite: channel formatting

This commit is contained in:
Kaaninchen
2026-08-15 19:48:15 +02:00
parent 826b543347
commit 8770d03bb6
4 changed files with 43 additions and 27 deletions
+6 -4
View File
@@ -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": {}
}
+5 -16
View File
@@ -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": "🚅"
}
+11 -6
View File
@@ -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!")
+21 -1
View File
@@ -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)
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