Ephemeriden Karte verbessert

This commit is contained in:
Eskimue
2026-04-28 13:42:51 +02:00
parent 7990c9f321
commit dd0a390344
2 changed files with 126 additions and 48 deletions
+16 -5
View File
@@ -419,13 +419,20 @@ def build_rows_response(
row_builder,
rise_set_builder,
action_name: str,
start_dt_str: str = "",
) -> dict:
try:
tz = ZoneInfo(timezone_name)
except Exception as exc:
fail("Zeitzone ist ungueltig.", extra={"details": str(exc)})
local_start = datetime.now(tz).replace(second=0, microsecond=0)
if start_dt_str:
try:
local_start = datetime.strptime(start_dt_str, "%Y-%m-%dT%H:%M").replace(tzinfo=tz)
except ValueError as exc:
fail("Startdatum ist ungueltig.", extra={"details": str(exc), "start_dt_str": start_dt_str})
else:
local_start = datetime.now(tz).replace(second=0, microsecond=0)
local_end = add_calendar_unit(local_start, range_value, range_unit)
rows = []
@@ -483,9 +490,9 @@ def build_rows_response(
def action_planet_ephemeris(args: list[str]) -> dict:
if len(args) != 8:
if len(args) not in {8, 9}:
fail(
"Aktion planet_ephemeris erwartet 8 Argumente: latitude longitude elevation timezone body intervalMinutes rangeValue rangeUnit",
"Aktion planet_ephemeris erwartet 8 oder 9 Argumente: latitude longitude elevation timezone body intervalMinutes rangeValue rangeUnit [startDt]",
extra={"argv": args},
)
@@ -502,6 +509,7 @@ def action_planet_ephemeris(args: list[str]) -> dict:
fail("Intervall oder Zeitraum ist ungueltig.", extra={"details": str(exc), "argv": args})
range_unit = str(args[7]).strip()
start_dt_str = str(args[8]).strip() if len(args) == 9 else ""
if interval_minutes <= 0:
fail("Intervall muss groesser als 0 sein.", extra={"interval_minutes": interval_minutes})
@@ -559,13 +567,14 @@ def action_planet_ephemeris(args: list[str]) -> dict:
row_builder=row_builder,
rise_set_builder=rise_set_builder,
action_name="planet_ephemeris",
start_dt_str=start_dt_str,
)
def action_small_body_ephemeris(args: list[str]) -> dict:
if len(args) != 9:
if len(args) not in {9, 10}:
fail(
"Aktion small_body_ephemeris erwartet 9 Argumente: latitude longitude elevation timezone bodyType payload intervalMinutes rangeValue rangeUnit",
"Aktion small_body_ephemeris erwartet 9 oder 10 Argumente: latitude longitude elevation timezone bodyType payload intervalMinutes rangeValue rangeUnit [startDt]",
extra={"argv": args},
)
@@ -588,6 +597,7 @@ def action_small_body_ephemeris(args: list[str]) -> dict:
fail("Intervall oder Zeitraum ist ungueltig.", extra={"details": str(exc), "argv": args})
range_unit = str(args[8]).strip()
start_dt_str = str(args[9]).strip() if len(args) == 10 else ""
if body_type not in {"minorplanet", "comet"}:
fail("Objekttyp ist ungueltig.", extra={"body_type": body_type})
@@ -649,6 +659,7 @@ def action_small_body_ephemeris(args: list[str]) -> dict:
row_builder=row_builder,
rise_set_builder=rise_set_builder,
action_name="small_body_ephemeris",
start_dt_str=start_dt_str,
)