mirror of
https://github.com/kaaninchen/Gleiswechsel.git
synced 2026-09-17 16:52:47 +00:00
transitous rewrite: channel formatting
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
import json
|
|
||||||
import requests
|
import requests
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from src.utils import logger, config
|
from src.utils import logger, config, get_train_name
|
||||||
|
|
||||||
stations = config["stations"]
|
stations = config["stations"]
|
||||||
blacklist = config["blacklist"]
|
blacklist = config["blacklist"]
|
||||||
@@ -92,9 +91,12 @@ def get_trip_details(trip_id: str) -> dict:
|
|||||||
trip_to = legs["tripTo"]["name"]
|
trip_to = legs["tripTo"]["name"]
|
||||||
start_time = legs["startTime"]
|
start_time = legs["startTime"]
|
||||||
end_time = legs["endTime"]
|
end_time = legs["endTime"]
|
||||||
|
mode = legs["mode"]
|
||||||
|
train_name = get_train_name(display_name, mode)
|
||||||
|
|
||||||
|
|
||||||
trip_details = {
|
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,
|
"short_name": display_name,
|
||||||
"from": trip_from,
|
"from": trip_from,
|
||||||
"to": trip_to,
|
"to": trip_to,
|
||||||
@@ -103,7 +105,7 @@ def get_trip_details(trip_id: str) -> dict:
|
|||||||
"duration": legs["duration"],
|
"duration": legs["duration"],
|
||||||
"start_time": start_time,
|
"start_time": start_time,
|
||||||
"end_time": end_time,
|
"end_time": end_time,
|
||||||
"mode": legs["mode"],
|
"mode": mode,
|
||||||
"stops": {}
|
"stops": {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-16
@@ -1,18 +1,7 @@
|
|||||||
emoji_list = {
|
emoji_list = {
|
||||||
"Fallback": "🚉",
|
"Fallback": "💺",
|
||||||
"Nahverkehr": "🚃",
|
"BUS": "🚎",
|
||||||
"Höchstgeschwindigkeit": "🚄",
|
"Tram": "🚈",
|
||||||
"Bus": "🚎"
|
"REGIONAL_RAIL": "🚊",
|
||||||
}
|
"HIGHSPEED_RAIL": "🚅"
|
||||||
|
|
||||||
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"]
|
|
||||||
}
|
}
|
||||||
+10
-5
@@ -1,8 +1,9 @@
|
|||||||
import discord
|
import discord
|
||||||
import asyncio
|
import asyncio
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from src.api import transitous
|
from src.api import transitous
|
||||||
from src.utils import logger
|
from src.utils import logger, channel_formatting
|
||||||
|
|
||||||
_scheduled_task: asyncio.Task | None = None
|
_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_id = transitous.get_random_connection(station_id)
|
||||||
trip = transitous.get_trip_details(trip_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("-----------------")
|
print("-----------------")
|
||||||
logger(f"Umstieg: {train_name}")
|
logger(f"Umstieg: {long_name}, Ankunft: {arrival}")
|
||||||
logger(f"Betreiber: {trip["agency"]}, Typ: {trip["mode"]}")
|
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!")
|
logger(f"Name geändert!")
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import json
|
|||||||
import os
|
import os
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
from src.data.emojis import emoji_list
|
||||||
|
|
||||||
with open("config.json", "r") as file:
|
with open("config.json", "r") as file:
|
||||||
config = json.load(file)
|
config = json.load(file)
|
||||||
|
|
||||||
@@ -11,3 +13,21 @@ def logger(msg, log_type="info") -> str:
|
|||||||
print(f"{current_time}: {status}: {msg}")
|
print(f"{current_time}: {status}: {msg}")
|
||||||
if status == "FATAL":
|
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
|
||||||
Reference in New Issue
Block a user