mirror of
https://github.com/kaaninchen/Gleiswechsel.git
synced 2026-07-21 19:52:47 +00:00
Umgang mit mehreren Operator Einträgen verbessert
This commit is contained in:
+33
-23
@@ -1,27 +1,18 @@
|
|||||||
db_allgemein = {
|
|
||||||
"logo": "https://marketingportal.extranet.deutschebahn.com/resource/blob/13602522/c53f806b9df966e144010b276af72dd2/Bild_09-data.png",
|
|
||||||
"color": 0xEC0016,
|
|
||||||
"slogan": ["Senk ju vor träwelling wis Deutsche Bahn.", "Bitte beachten Sie die umgekehrte Wagenreihung.", "Zurückbleiben bitte!", "Alle reden vom Wetter. Wir nicht.", "Die Bahn macht mobil.", "Grün abgefahren"]
|
|
||||||
}
|
|
||||||
|
|
||||||
db_bawü = {
|
|
||||||
"logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Bwegt_Logo.svg/960px-Bwegt_Logo.svg.png",
|
|
||||||
"color": 0xFFBF34,
|
|
||||||
"slogan": ["Nett hier", "Aber waren Sie schon mal in Baden-Württemberg?", "Bwegt euch!"]
|
|
||||||
}
|
|
||||||
|
|
||||||
OPERATOR_ALIASES = {
|
|
||||||
"DB Regio AG Baden-Württemberg": db_bawü,
|
|
||||||
"DB Regio Stuttgart GmbH": db_bawü,
|
|
||||||
"DB Fernverkehr AG": db_allgemein,
|
|
||||||
"DB Regio AG NRW": db_allgemein,
|
|
||||||
}
|
|
||||||
|
|
||||||
OPERATORS = {
|
OPERATORS = {
|
||||||
"fallback": {
|
"fallback": {
|
||||||
"unknown": True,
|
"unknown": True,
|
||||||
"logo": "https://upload.wikimedia.org/wikipedia/commons/2/20/Bahn_aus_Zusatzzeichen_1024-15_A.png",
|
"logo": "https://images.emojiterra.com/google/noto-emoji/unicode-15/color/512px/1f686.png",
|
||||||
"color": 0x000000
|
"color": 0x087BBB
|
||||||
|
},
|
||||||
|
"db_allgemein": {
|
||||||
|
"logo": "https://marketingportal.extranet.deutschebahn.com/resource/blob/13602522/c53f806b9df966e144010b276af72dd2/Bild_09-data.png",
|
||||||
|
"color": 0xEC0016,
|
||||||
|
"slogan": ["Senk ju vor träwelling wis Deutsche Bahn.", "Bitte beachten Sie die umgekehrte Wagenreihung.", "Zurückbleiben bitte!", "Alle reden vom Wetter. Wir nicht.", "Die Bahn macht mobil.", "Grün abgefahren"]
|
||||||
|
},
|
||||||
|
"db_bawü": {
|
||||||
|
"logo": "https://upload.wikimedia.org/wikipedia/commons/d/d1/Bwegt_Logo_%282020%29.jpg",
|
||||||
|
"color": 0xFFBF34,
|
||||||
|
"slogan": ["Nett hier", "Aber waren Sie schon mal in Baden-Württemberg?", "Bwegt euch!"]
|
||||||
},
|
},
|
||||||
"Ostdeutsche Eisenbahn GmbH": {
|
"Ostdeutsche Eisenbahn GmbH": {
|
||||||
"logo": "https://www.odeg.de/fileadmin/user_upload/Unternehmensseite/presse/pressebilder/ODEG_Pressebilder_Logo-CMYK-JPG.jpg",
|
"logo": "https://www.odeg.de/fileadmin/user_upload/Unternehmensseite/presse/pressebilder/ODEG_Pressebilder_Logo-CMYK-JPG.jpg",
|
||||||
@@ -29,11 +20,12 @@ OPERATORS = {
|
|||||||
},
|
},
|
||||||
"Nederlandse Spoorwegen": {
|
"Nederlandse Spoorwegen": {
|
||||||
"logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Logo_NS.svg/960px-Logo_NS.svg.png",
|
"logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Logo_NS.svg/960px-Logo_NS.svg.png",
|
||||||
"color": 0X00337F
|
"color": 0X00337F,
|
||||||
|
"slogan": ["Goed op weg", "Welkom in de trein van morgen", "Veilig, Vlug, Voordelig", "we haben een serious probleem", "Neuken in de keuken"]
|
||||||
},
|
},
|
||||||
"eurobahn": {
|
"eurobahn": {
|
||||||
"logo": "https://upload.wikimedia.org/wikipedia/commons/3/34/Digital_Logo_eurobahn.png",
|
"logo": "https://upload.wikimedia.org/wikipedia/commons/3/34/Digital_Logo_eurobahn.png",
|
||||||
"color": 0x005a9b
|
"color": 0x005a9b,
|
||||||
},
|
},
|
||||||
"Arverio Bayern": {
|
"Arverio Bayern": {
|
||||||
"logo": "https://cdn.discordapp.com/attachments/1383843132906537023/1528006572805062776/Arverio_Avi_Bayern_blau_RGB.png?ex=6a5cba83&is=6a5b6903&hm=5781ae6c372c92ab4f52409c6fc91e5014ac34ccf24db665ade052e8135bdde0&animated=true", # alternative nötig!
|
"logo": "https://cdn.discordapp.com/attachments/1383843132906537023/1528006572805062776/Arverio_Avi_Bayern_blau_RGB.png?ex=6a5cba83&is=6a5b6903&hm=5781ae6c372c92ab4f52409c6fc91e5014ac34ccf24db665ade052e8135bdde0&animated=true", # alternative nötig!
|
||||||
@@ -42,5 +34,23 @@ OPERATORS = {
|
|||||||
"Bayerische Regiobahn": {
|
"Bayerische Regiobahn": {
|
||||||
"logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Logo_BRB_2015.svg/1920px-Logo_BRB_2015.svg.png",
|
"logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Logo_BRB_2015.svg/1920px-Logo_BRB_2015.svg.png",
|
||||||
"color": 0xF61526
|
"color": 0xF61526
|
||||||
|
},
|
||||||
|
"Abellio Rail Mitteldeutschland GmbH": {
|
||||||
|
"logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Abellio_logo.svg/1920px-Abellio_logo.svg.png",
|
||||||
|
"color": 0xD7002E
|
||||||
|
},
|
||||||
|
"SBB": {
|
||||||
|
"logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/SBB_logo_simplified.svg/960px-SBB_logo_simplified.svg.png",
|
||||||
|
"color": 0xEB0000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OPERATOR_ALIASES = {
|
||||||
|
"DB Regio AG Baden-Württemberg": OPERATORS["db_bawü"],
|
||||||
|
"DB Regio Stuttgart GmbH": OPERATORS["db_bawü"],
|
||||||
|
"DB Fernverkehr AG": OPERATORS["db_allgemein"],
|
||||||
|
"DB Regio AG NRW": OPERATORS["db_allgemein"],
|
||||||
|
"DB Regio AG Nord": OPERATORS["db_allgemein"],
|
||||||
|
"SBB GmbH": OPERATORS["SBB"],
|
||||||
|
"Schweizerische Bundesbahnen SBB": OPERATORS["SBB"],
|
||||||
|
}
|
||||||
+2
-3
@@ -2,7 +2,7 @@ import random
|
|||||||
import discord
|
import discord
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import src.handlers as handlers
|
import src.handlers as handlers
|
||||||
from src.utils import operator_metadata, format_via_list, logger
|
from src.utils import operator_metadata, format_via_list, resolve_operator, logger
|
||||||
|
|
||||||
def format_timestamp(timestr):
|
def format_timestamp(timestr):
|
||||||
parsed_time = datetime.strptime(timestr, "%H:%M")
|
parsed_time = datetime.strptime(timestr, "%H:%M")
|
||||||
@@ -30,8 +30,7 @@ def build_info_embed() -> discord.Embed | None:
|
|||||||
conn = handlers.current
|
conn = handlers.current
|
||||||
info = handlers.train_info
|
info = handlers.train_info
|
||||||
|
|
||||||
current_operator = info["operators"][0]
|
current_operator = resolve_operator(info["operators"])
|
||||||
|
|
||||||
arrival = format_iso_timestamp(info["arrival"])
|
arrival = format_iso_timestamp(info["arrival"])
|
||||||
departure = format_timestamp(conn['departure'])
|
departure = format_timestamp(conn['departure'])
|
||||||
|
|
||||||
|
|||||||
+7
-5
@@ -28,13 +28,15 @@ async def rename_vc(bot: discord.Bot):
|
|||||||
|
|
||||||
attempt += 1
|
attempt += 1
|
||||||
current = random_connection()
|
current = random_connection()
|
||||||
train_type = current['train'].split()[0]
|
|
||||||
|
|
||||||
if train_type in ("IC", "ICE", "NJ", "ES", "DZ", "RJ"):
|
parts = current['train'].split()
|
||||||
|
train_type = parts[0]
|
||||||
|
|
||||||
|
if parts[1].isdigit():
|
||||||
train = current['train']
|
train = current['train']
|
||||||
train_ID = current['train'].split()[1]
|
train_ID = parts[1]
|
||||||
else:
|
else:
|
||||||
train = current['train'].split()[1]
|
train = parts[1]
|
||||||
train_ID = current['train_number']
|
train_ID = current['train_number']
|
||||||
|
|
||||||
train_info = get_train_info(station=current['station'], train_ID=train_ID, train_type=train_type)
|
train_info = get_train_info(station=current['station'], train_ID=train_ID, train_type=train_type)
|
||||||
@@ -45,7 +47,7 @@ async def rename_vc(bot: discord.Bot):
|
|||||||
logger(f"Versuch {attempt}: Keine Ankunftszeit für {current['train']} verfügbar, versuche neue Verbindung...")
|
logger(f"Versuch {attempt}: Keine Ankunftszeit für {current['train']} verfügbar, versuche neue Verbindung...")
|
||||||
|
|
||||||
train_name = f"{train} nach {current['destination']} von {current['station']}"
|
train_name = f"{train} nach {current['destination']} von {current['station']}"
|
||||||
print(train_name)
|
logger(f"Vorbereitung auf {train_name} (typ: {train_type})")
|
||||||
arrival = datetime.fromisoformat(str(train_info["arrival"]))
|
arrival = datetime.fromisoformat(str(train_info["arrival"]))
|
||||||
|
|
||||||
_scheduled_task = asyncio.create_task(_schedule_next_umstieg(bot, arrival))
|
_scheduled_task = asyncio.create_task(_schedule_next_umstieg(bot, arrival))
|
||||||
|
|||||||
@@ -78,6 +78,15 @@ def format_via_list(via: list[str]):
|
|||||||
return via[0]
|
return via[0]
|
||||||
return ", ".join(via[:-1]) + " und " + via[-1]
|
return ", ".join(via[:-1]) + " und " + via[-1]
|
||||||
|
|
||||||
|
def resolve_operator(operators):
|
||||||
|
if not operators:
|
||||||
|
return None
|
||||||
|
for op in operators:
|
||||||
|
if op in operators_module.OPERATOR_ALIASES or op in operators_module.OPERATORS:
|
||||||
|
return op
|
||||||
|
|
||||||
|
return operators[0]
|
||||||
|
|
||||||
def operator_metadata(operator):
|
def operator_metadata(operator):
|
||||||
_reload_operators_if_changed()
|
_reload_operators_if_changed()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user