3 from typing import List
5 from wrpylib.json_tools import format_json
6 from wrpylib.mwapi import WikiSite, page_json
9 def update_wrgeojson(site: WikiSite, title: str):
10 wrgeojson_page = site.query_page(title)
11 if 'missing' in wrgeojson_page:
13 wrgeojson_json = page_json(wrgeojson_page)
14 wrgeojson_orig = wrgeojson_json.copy()
16 properties = wrgeojson_json.pop('properties', {}).copy()
17 if "simplified" not in properties:
18 properties["simplified"] = True
19 wrgeojson_json['properties'] = properties
20 if wrgeojson_json == wrgeojson_orig:
25 pageid=wrgeojson_page['pageid'],
26 text=format_json(wrgeojson_json),
27 summary=f'Eigenschaft "simplified" eingefügt.',
30 baserevid=wrgeojson_page['revisions'][0]['revid'],
36 def update_wiki_wrgeojson(ini_files: List[str]):
37 site = WikiSite(ini_files)
38 for result in site.query(list='categorymembers', cmtitle='Kategorie:Rodelbahn'):
39 for title in result['categorymembers']:
40 wrgeojson_title = f'{title["title"]}/Landkarte.json'
41 update_wrgeojson(site, wrgeojson_title)
45 parser = argparse.ArgumentParser(description='Update wrgeojson Wiki pages: Add attribute "simplified".')
46 parser.add_argument('inifile', nargs='+', help='inifile.ini, see: https://www.winterrodeln.org/trac/wiki/ConfigIni')
47 args = parser.parse_args()
48 update_wiki_wrgeojson(args.inifile)
51 if __name__ == '__main__':