From: Philipp Spitzer Date: Tue, 12 Dec 2023 20:24:35 +0000 (+0100) Subject: Add date as command line parameter. X-Git-Url: https://git.toastfreeware.priv.at/philipp/winterrodeln/wrpylib.git/commitdiff_plain/ce210a6648f4d5ee165fd28eb742d2306aadcfc0 Add date as command line parameter. --- diff --git a/scripts/update_public_transport_times.py b/scripts/update_public_transport_times.py index 9880d75..8b43cbc 100644 --- a/scripts/update_public_transport_times.py +++ b/scripts/update_public_transport_times.py @@ -41,14 +41,13 @@ def format_time(day: date, seconds: float) -> str: 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 @@ -140,25 +139,28 @@ def get_all_sledrun_titles(site: WikiSite) -> Iterable[str]: 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__':