return (dt + timedelta(seconds=seconds)).isoformat(timespec='minutes')
-def update_sledrun(site: WikiSite, title: str, feed: Feed, service_ids_by_date: Dict[datetime.date, FrozenSet[str]]):
+def update_sledrun(site: WikiSite, title: str, service_date: date, feed: Feed, service_ids_by_date: \
+ Dict[datetime.date, FrozenSet[str]]):
cprint(title, 'green')
sledrun_json_page = site.query_page(f'{title}/Rodelbahn.json')
sledrun: Sledrun = page_json(sledrun_json_page)
sledrun_orig = deepcopy(sledrun)
- service_date = default_query_date(date.today())
-
stops = feed.stops
stop_times = feed.stop_times
trips = feed.trips
for page in result['categorymembers']:
yield page['title']
-def update_public_transport_times(ini_files: List[str], gtfs_file: str, sledrun_title: Optional[str]):
+def update_public_transport_times(ini_files: List[str], service_date: date, gtfs_file: str, sledrun_title: Optional[str]):
feed = ptg.load_feed(gtfs_file)
service_ids_by_date = read_service_ids_by_date(gtfs_file)
site = WikiSite(ini_files)
if sledrun_title is None:
for sledrun_title in get_all_sledrun_titles(site):
- update_sledrun(site, sledrun_title, feed, service_ids_by_date)
+ update_sledrun(site, sledrun_title, service_date, feed, service_ids_by_date)
else:
- update_sledrun(site, sledrun_title, feed, service_ids_by_date)
+ update_sledrun(site, sledrun_title, service_date, feed, service_ids_by_date)
def main():
+ query_date = default_query_date(date.today())
parser = argparse.ArgumentParser(description='Update public transport bus stop time info in sledrun JSON files.')
parser.add_argument('--sledrun', help='If given, work on a single sled run page, otherwise at the whole category.')
+ parser.add_argument('--date', type=date.fromisoformat, default=query_date,
+ help='Working week date to query the database.')
parser.add_argument('gtfs_file', help='GTFS file.')
parser.add_argument('inifile', nargs='+', help='inifile.ini, see: https://www.winterrodeln.org/trac/wiki/ConfigIni')
args = parser.parse_args()
- update_public_transport_times(args.inifile, args.gtfs_file, args.sledrun)
+ update_public_transport_times(args.inifile, args.date, args.gtfs_file, args.sledrun)
if __name__ == '__main__':