from wrpylib.cli_tools import unified_diff, input_yes_no_quit, Choice
from wrpylib.json_tools import order_json_keys, format_json
+from wrpylib.lib_update_public_transport import vao_ext_id_to_ifopt_stop_id
from wrpylib.mwapi import WikiSite, page_json
from wrpylib.sledrun_json import Sledrun, Position, PublicTransportStop
pt_stop['ifopt_stop_id'] = f'at:47:{pt_stop["vvt_stop_id"]}'
continue
if 'vao_ext_id' in pt_stop: # e.g. '476164600' -> "at:47:61646"
- if match := re.match(r'(47)(\d{5})00', pt_stop['vao_ext_id']):
- g1, g2 = match.groups()
- pt_stop['ifopt_stop_id'] = f"at:{g1}:{g2}"
+ if ifopt_stop_id := vao_ext_id_to_ifopt_stop_id(pt_stop['vao_ext_id']):
+ pt_stop['ifopt_stop_id'] = ifopt_stop_id
continue
+ if monitor_template := pt_stop.get('monitor_template'):
+ if monitor_template.get('name') == "Fahrplan Abfahrtsmonitor VVT":
+ parameter = monitor_template['parameter']
+ if len(parameter) == 3:
+ vvt_stop_id = int(parameter[2]['value'])
+ pt_stop['ifopt_stop_id'] = f'at:47:{vvt_stop_id}'
+ continue
if position_elevation := pt_stop.get('position'):
if position := position_elevation.get('position'):
bus_stop_feature_list = bus_stop_geojson['features']
if distance_m < 30:
name1 = pt_stop["name"] if "name" in pt_stop else pt_stop.get("name_local", "(unnamed stop)")
name2 = closest_bus_stop_feature['properties']["hst_name"]
- choice = input_yes_no_quit(f'Assign "{name1}" to "{name2}" [yes, no, quit]?', None)
+ choice = input_yes_no_quit(f'Assign "{name1}" to "{name2}" [yes, no, quit]? ', None)
if choice == Choice.no:
return
elif choice == Choice.quit: