Compare commits
No commits in common. "e31ce07f05861359156f91a859870fdeb8f1be82" and "2fce6b281abc51594f42c0678269372157488427" have entirely different histories.
e31ce07f05
...
2fce6b281a
1 changed files with 11 additions and 70 deletions
|
|
@ -1,21 +1,13 @@
|
||||||
import requests
|
import requests
|
||||||
import json
|
import json
|
||||||
from pathlib import Path
|
|
||||||
from datetime import datetime, timezone
|
|
||||||
|
|
||||||
from aiohttp import payload_type
|
|
||||||
from proto import Field
|
|
||||||
|
|
||||||
USERNAME = "hubobel"
|
USERNAME = "hubobel"
|
||||||
URL = "https://www.simbrief.com/api/xml.fetcher.php"
|
URL = "https://www.simbrief.com/api/xml.fetcher.php"
|
||||||
|
|
||||||
params = {
|
params = {
|
||||||
"username": USERNAME,
|
"username": USERNAME,
|
||||||
"json": 1, # JSON statt XML
|
"json": 1, # JSON statt XML
|
||||||
}
|
}
|
||||||
Pfad = 'Universal_txts/Windows'
|
|
||||||
|
|
||||||
ordnerneu = Path(Pfad + '/neu/')
|
|
||||||
ordnerneu.mkdir(exist_ok=True)
|
|
||||||
|
|
||||||
def minuten_zu_zeit(minuten) -> str:
|
def minuten_zu_zeit(minuten) -> str:
|
||||||
minuten = int(minuten)
|
minuten = int(minuten)
|
||||||
|
|
@ -31,6 +23,7 @@ def aircr_name(aircraft_icao):
|
||||||
print("Code nicht vorhanden")
|
print("Code nicht vorhanden")
|
||||||
antwort = "unbekanntes Luftfahrzeug"
|
antwort = "unbekanntes Luftfahrzeug"
|
||||||
return (antwort)
|
return (antwort)
|
||||||
|
|
||||||
def start_name(ori_icao):
|
def start_name(ori_icao):
|
||||||
|
|
||||||
with open("airports_full.json", "r", encoding="utf-8") as f:
|
with open("airports_full.json", "r", encoding="utf-8") as f:
|
||||||
|
|
@ -41,32 +34,16 @@ def start_name(ori_icao):
|
||||||
print("Code nicht vorhanden")
|
print("Code nicht vorhanden")
|
||||||
antwort = "unbekannter Startflughafen"
|
antwort = "unbekannter Startflughafen"
|
||||||
return (antwort)
|
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<general><initial_altitude>}', 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 = requests.get(URL, params=params, timeout=15)
|
||||||
|
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
|
|
||||||
data = resp.json() # dict
|
data = resp.json() # dict
|
||||||
|
|
||||||
|
# Top-Level-Keys ausgeben
|
||||||
print(data.keys())
|
print(data.keys())
|
||||||
print(data['weights'])
|
print()
|
||||||
|
|
||||||
general = data.get("general", {})
|
general = data.get("general", {})
|
||||||
origin = data.get("origin", {})
|
origin = data.get("origin", {})
|
||||||
|
|
@ -78,51 +55,15 @@ dest_icao = dest["icao_code"]
|
||||||
aircraft = data.get("aircraft", {})
|
aircraft = data.get("aircraft", {})
|
||||||
time = data.get("times", {})
|
time = data.get("times", {})
|
||||||
block = minuten_zu_zeit(int(time.get("sched_block"))/60)
|
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_icao = aircraft["icaocode"]
|
||||||
aircraft_name = aircr_name((aircraft_icao))
|
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("Airline:", general.get("icao_airline"))
|
||||||
print("Airlinename:", airline)
|
|
||||||
print("Flugnummer:", general.get("flight_number"))
|
print("Flugnummer:", general.get("flight_number"))
|
||||||
print("Abflug ICAO:", origin.get("icao_code"))
|
print("Abflug ICAO:", origin.get("icao_code"))
|
||||||
print("von:", origin_name)
|
|
||||||
print("Ziel ICAO:", dest.get("icao_code"))
|
print("Ziel ICAO:", dest.get("icao_code"))
|
||||||
print("nach:", dest_name)
|
|
||||||
print("Geplante Blockzeit:", block)
|
print("Geplante Blockzeit:", block)
|
||||||
print("geplanter Start:", start_time,"UTC")
|
print(aircraft_icao, aircraft_name)
|
||||||
print("geplante Landung:", land_time, "UTC")
|
print(origin["icao_code"], origin_name)
|
||||||
print("Fluggerät:", aircraft_icao, aircraft_name)
|
print(dest_icao, dest_name)
|
||||||
print("Cruiselevel:", fl)
|
#HelloWorld
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue