Wegwichtel/tools/python/create_poi.py
Florian Zumpe 95026aac6e
Some checks failed
Sonarqube Scanner / Build and analyze (push) Failing after 22s
fixed sonarqube scan issues
2026-06-17 15:12:46 +02:00

41 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""Legt einen POI für eine Route an."""
import argparse
from collections.abc import Sequence
from common import add_common_arguments, ask, client_from_args, run
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="POI anlegen")
add_common_arguments(parser)
parser.add_argument("--route-id", type=int)
parser.add_argument("--title")
parser.add_argument("--description")
parser.add_argument("--lat", type=float)
parser.add_argument("--lon", type=float)
parser.add_argument("--trigger-radius", type=float)
parser.add_argument("--sequence", type=int)
return parser
def main(argv: Sequence[str] | None = None):
args = build_parser().parse_args(argv)
client = client_from_args(args)
route_id = ask("Route-ID", args.route_id, required=True, cast=int)
body = {
"title": ask("Titel", args.title),
"description": ask("Beschreibung", args.description),
"lat": ask("Breitengrad", args.lat, required=True, cast=float),
"lon": ask("Längengrad", args.lon, required=True, cast=float),
"triggerRadiusM": ask("Auslöseradius in Metern", args.trigger_radius, cast=float),
"sequence": ask("Reihenfolge", args.sequence, cast=int),
}
payload = {key: value for key, value in body.items() if value is not None}
return client.request("POST", f"/api/routes/{route_id}/pois", json_body=payload)
if __name__ == "__main__":
run(main)