mirror of
https://github.com/kaaninchen/Gleiswechsel.git
synced 2026-09-17 16:52:47 +00:00
transitous rewrite: bug fixes
don't know anymore :(
This commit is contained in:
+2
-1
@@ -4,4 +4,5 @@ src/data/announcements/*
|
|||||||
!src/data/announcements/.gitkeep
|
!src/data/announcements/.gitkeep
|
||||||
config.json
|
config.json
|
||||||
src/legacy/
|
src/legacy/
|
||||||
main_legacy.py
|
main_legacy.py
|
||||||
|
data.json
|
||||||
+21
-11
@@ -1,7 +1,7 @@
|
|||||||
import requests
|
import requests
|
||||||
import random
|
import random
|
||||||
import json
|
import json
|
||||||
from datetime import datetime, timezone, timedelta
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from src.utils import logger, config, get_train_name, convert_iso_string, validate_connection
|
from src.utils import logger, config, get_train_name, convert_iso_string, validate_connection
|
||||||
|
|
||||||
@@ -32,18 +32,18 @@ def get_random_stop_id() -> str | None:
|
|||||||
logger(f"Error finding station '{assigned_station}'", "error")
|
logger(f"Error finding station '{assigned_station}'", "error")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
id = []
|
id = None
|
||||||
for entry in data:
|
for entry in data:
|
||||||
if entry.get("type") != "STOP":
|
if entry.get("type") != "STOP":
|
||||||
continue
|
continue
|
||||||
entry_id = entry.get("id", None)
|
id = entry.get("id", None)
|
||||||
id.append(entry_id)
|
break
|
||||||
|
|
||||||
if id is None:
|
if id is None:
|
||||||
logger(f"Failed to grab ID from '{assigned_station}'", "error")
|
logger(f"Failed to grab ID from '{assigned_station}'", "error")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return random.choice(id)
|
return id
|
||||||
|
|
||||||
def get_random_connection(stop_id: str) -> str | None:
|
def get_random_connection(stop_id: str) -> str | None:
|
||||||
if stop_id is None:
|
if stop_id is None:
|
||||||
@@ -81,7 +81,9 @@ def get_random_connection(stop_id: str) -> str | None:
|
|||||||
trip_id = entry["tripId"]
|
trip_id = entry["tripId"]
|
||||||
if entry["mode"] in blacklist:
|
if entry["mode"] in blacklist:
|
||||||
continue
|
continue
|
||||||
trip_ids.append(entry["tripId"])
|
else:
|
||||||
|
print(entry["mode"])
|
||||||
|
trip_ids.append(entry["tripId"])
|
||||||
|
|
||||||
if len(trip_ids) >= min_results:
|
if len(trip_ids) >= min_results:
|
||||||
break
|
break
|
||||||
@@ -125,8 +127,8 @@ def get_trip_details(random_connection: dict | None) -> dict | None:
|
|||||||
end_time = legs["endTime"]
|
end_time = legs["endTime"]
|
||||||
from_station = random_connection["from_station"]
|
from_station = random_connection["from_station"]
|
||||||
display_name = legs["displayName"]
|
display_name = legs["displayName"]
|
||||||
trip_from = legs["tripFrom"]["name"]
|
trip_from = legs["from"]["name"]
|
||||||
goes_to = legs["tripTo"]["name"]
|
goes_to = legs["to"]["name"]
|
||||||
start_time = legs["startTime"]
|
start_time = legs["startTime"]
|
||||||
mode = legs["mode"]
|
mode = legs["mode"]
|
||||||
|
|
||||||
@@ -138,9 +140,13 @@ def get_trip_details(random_connection: dict | None) -> dict | None:
|
|||||||
departure = convert_iso_string(start_time)
|
departure = convert_iso_string(start_time)
|
||||||
|
|
||||||
train_name = get_train_name(display_name, mode)
|
train_name = get_train_name(display_name, mode)
|
||||||
|
if trip_from == from_station:
|
||||||
|
long_name = f"{train_name} nach {goes_to} von {trip_from}"
|
||||||
|
else:
|
||||||
|
long_name = f"{train_name} nach {goes_to} von {trip_from}, über {from_station}"
|
||||||
|
|
||||||
trip_details = {
|
trip_details = {
|
||||||
"long_name": f"{train_name} nach {goes_to} von {from_station}",
|
"long_name": long_name,
|
||||||
"short_name": display_name,
|
"short_name": display_name,
|
||||||
"from": from_station,
|
"from": from_station,
|
||||||
"to": goes_to,
|
"to": goes_to,
|
||||||
@@ -154,6 +160,7 @@ def get_trip_details(random_connection: dict | None) -> dict | None:
|
|||||||
}
|
}
|
||||||
|
|
||||||
trip_details["stops"][trip_from] = departure
|
trip_details["stops"][trip_from] = departure
|
||||||
|
print(trip_from)
|
||||||
for stop in legs["intermediateStops"]:
|
for stop in legs["intermediateStops"]:
|
||||||
stop_arrival = convert_iso_string(stop["arrival"])
|
stop_arrival = convert_iso_string(stop["arrival"])
|
||||||
trip_details["stops"][stop["name"]] = stop_arrival
|
trip_details["stops"][stop["name"]] = stop_arrival
|
||||||
@@ -162,6 +169,9 @@ def get_trip_details(random_connection: dict | None) -> dict | None:
|
|||||||
trip_details["departure"] = convert_iso_string(departure_time)
|
trip_details["departure"] = convert_iso_string(departure_time)
|
||||||
trip_details["stops"][goes_to] = arrival
|
trip_details["stops"][goes_to] = arrival
|
||||||
|
|
||||||
|
with open('data.json', 'w') as f:
|
||||||
|
json.dump(data, f, indent=4, ensure_ascii=False)
|
||||||
|
|
||||||
logger(json.dumps(trip_details, indent=4, ensure_ascii=False))
|
logger(json.dumps(trip_details, indent=4, ensure_ascii=False))
|
||||||
return trip_details
|
return trip_details
|
||||||
|
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ OPERATOR_ALIASES = {
|
|||||||
"DB Regio AG Südost": OPERATORS["db_allgemein"],
|
"DB Regio AG Südost": OPERATORS["db_allgemein"],
|
||||||
"DB Regio AG Nordost": OPERATORS["db_allgemein"],
|
"DB Regio AG Nordost": OPERATORS["db_allgemein"],
|
||||||
"DB Regio AG Mitte": OPERATORS["db_allgemein"],
|
"DB Regio AG Mitte": OPERATORS["db_allgemein"],
|
||||||
|
"NS International": OPERATORS["NS"],
|
||||||
"SBB GmbH": OPERATORS["SBB"],
|
"SBB GmbH": OPERATORS["SBB"],
|
||||||
"Schweizerische Bundesbahnen SBB": OPERATORS["SBB"],
|
"Schweizerische Bundesbahnen SBB": OPERATORS["SBB"],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,4 @@ def build_info_embed() -> discord.Embed:
|
|||||||
embed.set_author(name=agency)
|
embed.set_author(name=agency)
|
||||||
embed.set_thumbnail(url=metadata["logo"])
|
embed.set_thumbnail(url=metadata["logo"])
|
||||||
|
|
||||||
color = trip.get("color", "keine farbe :(")
|
|
||||||
print(color)
|
|
||||||
return embed
|
return embed
|
||||||
+1
-1
@@ -28,7 +28,7 @@ async def rename_vc(bot: discord.Bot, voice_channel, from_scheduler: bool = Fals
|
|||||||
mode = trip["mode"]
|
mode = trip["mode"]
|
||||||
|
|
||||||
print("-----------------")
|
print("-----------------")
|
||||||
logger(f"Umstieg: {long_name}, Ankunft: {arrival} Uhr")
|
logger(f"Umstieg: {long_name}; Ankunft: {arrival} Uhr")
|
||||||
logger(f"Betreiber: {trip["agency"]}, Typ: {mode}")
|
logger(f"Betreiber: {trip["agency"]}, Typ: {mode}")
|
||||||
logger(f"Versuche Namen zu ändern, wenn nichts passiert bin ich im cooldown... (warte bis zu 10min!)")
|
logger(f"Versuche Namen zu ändern, wenn nichts passiert bin ich im cooldown... (warte bis zu 10min!)")
|
||||||
|
|
||||||
|
|||||||
+6
-4
@@ -30,6 +30,7 @@ def choose_connection() -> dict | None:
|
|||||||
def validate_connection(start_time: str, end_time: str) -> bool:
|
def validate_connection(start_time: str, end_time: str) -> bool:
|
||||||
now = datetime.now(timezone.utc)
|
now = datetime.now(timezone.utc)
|
||||||
start_dt = datetime.fromisoformat(start_time.replace("Z", "+00:00"))
|
start_dt = datetime.fromisoformat(start_time.replace("Z", "+00:00"))
|
||||||
|
print(start_dt)
|
||||||
end_dt = datetime.fromisoformat(end_time.replace("Z", "+00:00"))
|
end_dt = datetime.fromisoformat(end_time.replace("Z", "+00:00"))
|
||||||
max_wait_time = config.get("max_wait_time", 6)
|
max_wait_time = config.get("max_wait_time", 6)
|
||||||
|
|
||||||
@@ -94,18 +95,19 @@ def get_operator_metadata(agency: str, route_color: str) -> dict:
|
|||||||
op_data = operators.OPERATOR_ALIASES.get(agency) or operators.OPERATORS.get(agency) or operators.OPERATORS["fallback"]
|
op_data = operators.OPERATOR_ALIASES.get(agency) or operators.OPERATORS.get(agency) or operators.OPERATORS["fallback"]
|
||||||
|
|
||||||
logo = op_data.get("logo", operators.OPERATORS["fallback"]["logo"])
|
logo = op_data.get("logo", operators.OPERATORS["fallback"]["logo"])
|
||||||
slogans = op_data.get("slogans")
|
slogans = op_data.get("slogan")
|
||||||
|
|
||||||
color = op_data.get("color")
|
color = op_data.get("color")
|
||||||
if color is None:
|
if color is None:
|
||||||
if route_color is not None:
|
if route_color is not None:
|
||||||
try:
|
try:
|
||||||
color = int(f"0x{route_color.upper()}")
|
color = int(route_color, 16)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
color = operators.OPERATORS["fallback"]["color"]
|
color = operators.OPERATORS["fallback"]["color"]
|
||||||
|
else:
|
||||||
|
logger(f"Managed to get color from API: {color}")
|
||||||
else:
|
else:
|
||||||
color = operators.OPERATORS["fallback"]["colors"]
|
color = operators.OPERATORS["fallback"]["color"]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"logo": logo,
|
"logo": logo,
|
||||||
"color": color,
|
"color": color,
|
||||||
|
|||||||
Reference in New Issue
Block a user