# -*- coding: utf-8 -*- """Fin de l'étape 7 — points d'intérêt et habillage des applications. Séparé de `step7_images.py` parce que chaque point mis à jour relance l'indexation de toute la carte : c'est lent, et inutile à rejouer quand seules les applications restent à habiller. """ import json from pathlib import Path from api import Api from step7_images import POI_IMAGES STATE = Path(__file__).resolve().parent / "state.json" def main(): api = Api() state = json.loads(STATE.read_text(encoding="utf-8")) instance_id = state["instanceId"] resources = {r["label"]: r for r in (api.get(f"/api/Resource?instanceId={instance_id}") or [])} print("points d'intérêt") for point in api.get(f"/api/SectionMap/{state['mapEchternach']}/points") or []: title = next((t["value"] for t in point["title"] if t["language"] == "FR"), "") image = POI_IMAGES.get(title) if not image: continue resource = resources[image] # On compare l'URL, pas l'identifiant : un point rattaché lors d'un # passage précédent porte le bon identifiant mais une URL nulle. if point.get("imageUrl") == resource.get("url"): print(f" = {title}") continue point["imageResourceId"] = resource["id"] point["imageUrl"] = resource.get("url") api.put("/api/SectionMap", point) print(f" + {title} <- {image}") print("\nhabillage des applications") main_res = resources["app-accueil"] loader_res = resources["app-chargement"] for app in api.get(f"/api/ApplicationInstance?instanceId={instance_id}") or []: app["mainImageId"] = main_res["id"] app["mainImageUrl"] = main_res.get("url") app["loaderImageId"] = loader_res["id"] app["loaderImageUrl"] = loader_res.get("url") api.put("/api/ApplicationInstance", app) print(f" + type {app['appType']}") print("\nterminé") if __name__ == "__main__": main()