From e23e7fba6fafdfbb3528618b2932d8e8204fea9f Mon Sep 17 00:00:00 2001 From: hubobel Date: Tue, 23 Dec 2025 18:30:38 +0100 Subject: [PATCH 1/2] many Changes --- Simbriefimport.py | 70 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 10 deletions(-) diff --git a/Simbriefimport.py b/Simbriefimport.py index f51e672..c3769c4 100644 --- a/Simbriefimport.py +++ b/Simbriefimport.py @@ -1,13 +1,20 @@ import requests import json +from pathlib import Path +from datetime import datetime, timezone + +from proto import Field USERNAME = "hubobel" URL = "https://www.simbrief.com/api/xml.fetcher.php" - params = { "username": USERNAME, "json": 1, # JSON statt XML } +Pfad = 'Universal_txts/Windows' + +ordnerneu = Path(Pfad + '/neu/') +ordnerneu.mkdir(exist_ok=True) def minuten_zu_zeit(minuten) -> str: minuten = int(minuten) @@ -23,7 +30,6 @@ def aircr_name(aircraft_icao): print("Code nicht vorhanden") antwort = "unbekanntes Luftfahrzeug" return (antwort) - def start_name(ori_icao): with open("airports_full.json", "r", encoding="utf-8") as f: @@ -34,16 +40,32 @@ def start_name(ori_icao): print("Code nicht vorhanden") antwort = "unbekannter Startflughafen" return (antwort) +def airlinename(name): + with open("airlines_full.json", "r", encoding="utf-8") as f: + airline_data = json.load(f) + if name in airline_data: + antwort = (airline_data[name]["name"]) + else: + print("Code nicht vorhanden") + antwort = "unbekanntes Luftfahrzeug" + return (antwort) +def replacedynamic(message): + message = message.replace('{AIRCRAFT_NAME}', aircraft_name) + message = message.replace('{DESTINATION_NAME}', dest_name) + message = message.replace('{AIRLINE_NAME}', airline) + message = message.replace('{DESTINATION_CITY}', dest_name) + message = message.replace('{ORIGIN_CITY}', origin_name) + message = message.replace('{xml_number}', flightlevel) + return (message) +def unix_to_datetime(timestamp: int) -> str: + return datetime.fromtimestamp(timestamp, tz=timezone.utc).strftime("%d.%m.%Y %H:%M:%S") + resp = requests.get(URL, params=params, timeout=15) - resp.raise_for_status() - data = resp.json() # dict - -# Top-Level-Keys ausgeben print(data.keys()) -print() +print(data['weather']) general = data.get("general", {}) origin = data.get("origin", {}) @@ -55,14 +77,42 @@ dest_icao = dest["icao_code"] aircraft = data.get("aircraft", {}) time = data.get("times", {}) block = minuten_zu_zeit(int(time.get("sched_block"))/60) +start_time = unix_to_datetime(int(time.get("sched_out"))) +land_time = unix_to_datetime(int(time.get("sched_in"))) aircraft_icao = aircraft["icaocode"] aircraft_name = aircr_name((aircraft_icao)) +airline = airlinename(general.get("icao_airline")) +flightnumber = general.get("flight_number") +flightlevel = data['general']['initial_altitude'] +distance = data['general']['route_distance'] +fuel = data['fuel']['plan_ramp'] +metar_origin = data['weather']['orig_metar'] +metar_dest = data['weather']['dest_metar'] + print("Airline:", general.get("icao_airline")) print("Flugnummer:", general.get("flight_number")) print("Abflug ICAO:", origin.get("icao_code")) +print("von:", origin_name) print("Ziel ICAO:", dest.get("icao_code")) +print("nach:", dest_name) print("Geplante Blockzeit:", block) -print(aircraft_icao, aircraft_name) -print(origin["icao_code"], origin_name) -print(dest_icao, dest_name) +print("geplanter Start:", start_time,"UTC") +print("geplante Landung:", land_time, "UTC") +print("Fluggerät:", aircraft_icao, aircraft_name) +print("Cruiselevel:", flightlevel) +print("Entfernung:", distance, 'nm') +print("Fuel:", fuel, 'kg') +print("Wetter:", origin.get("icao_code"), metar_origin) +print("Wetter:", dest["icao_code"], metar_dest) + + + +for datei in Path(Pfad).glob("*.txt"): + with open(datei, "r", encoding="utf-8") as f: + inhalt = f.read() + inhalt_neu = replacedynamic(inhalt) + dateineu = str(ordnerneu) + '/' + (f"{datei.name}") + with open(dateineu,'w', encoding="utf-8") as e: + e.write(inhalt_neu) + From e31ce07f05861359156f91a859870fdeb8f1be82 Mon Sep 17 00:00:00 2001 From: hubobel Date: Tue, 23 Dec 2025 20:31:54 +0100 Subject: [PATCH 2/2] many Changes --- Simbriefimport.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Simbriefimport.py b/Simbriefimport.py index c3769c4..5b468f3 100644 --- a/Simbriefimport.py +++ b/Simbriefimport.py @@ -3,6 +3,7 @@ import json from pathlib import Path from datetime import datetime, timezone +from aiohttp import payload_type from proto import Field USERNAME = "hubobel" @@ -65,7 +66,7 @@ resp = requests.get(URL, params=params, timeout=15) resp.raise_for_status() data = resp.json() # dict print(data.keys()) -print(data['weather']) +print(data['weights']) general = data.get("general", {}) origin = data.get("origin", {}) @@ -84,13 +85,19 @@ aircraft_name = aircr_name((aircraft_icao)) airline = airlinename(general.get("icao_airline")) flightnumber = general.get("flight_number") flightlevel = data['general']['initial_altitude'] +fl = 'FL'+str(int(flightlevel)//100) distance = data['general']['route_distance'] fuel = data['fuel']['plan_ramp'] metar_origin = data['weather']['orig_metar'] metar_dest = data['weather']['dest_metar'] +pax = data['weights']['pax_count'] +payload = data['weights']['payload'] +tow = data['weights']['est_tow'] +zfw = data['weights']['est_zfw'] - +print('') print("Airline:", general.get("icao_airline")) +print("Airlinename:", airline) print("Flugnummer:", general.get("flight_number")) print("Abflug ICAO:", origin.get("icao_code")) print("von:", origin_name) @@ -100,9 +107,12 @@ print("Geplante Blockzeit:", block) print("geplanter Start:", start_time,"UTC") print("geplante Landung:", land_time, "UTC") print("Fluggerät:", aircraft_icao, aircraft_name) -print("Cruiselevel:", flightlevel) +print("Cruiselevel:", fl) print("Entfernung:", distance, 'nm') print("Fuel:", fuel, 'kg') +print("Passagiere:", pax) +print("ZFW:", zfw, 'kg') +print("TOW:", tow, 'kg') print("Wetter:", origin.get("icao_code"), metar_origin) print("Wetter:", dest["icao_code"], metar_dest)