DeaD_EyE

api.testflow.eu Testergebnis herunterladen

Dec 8th, 2021 (edited)
1,159
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import datetime
  2. import requests
  3.  
  4.  
  5. VALIDATE_BIRTH = "https://api.testflow.eu/api/testcase/validatebirth/{code}"
  6.  
  7.  
  8. def get_pdf(code, birth_year):
  9.     response = requests.post(
  10.         VALIDATE_BIRTH.format(code=code),
  11.         json={"birthyear": str(birth_year)},
  12.     )
  13.    
  14.     if response.status_code != 200:
  15.         return "error", ""
  16.        
  17.     data = response.json()
  18.    
  19.     if data["validation"] == "failed":
  20.         return "failed", ""
  21.    
  22.     result = data["result"]
  23.     if not result:
  24.         return "not ready", ""
  25.  
  26.     pdf = data["certificates"]["de_en"]
  27.  
  28.     return result, pdf
  29.  
  30.  
  31. def main():
  32.     code = input("Code: ")
  33.     geburts_jahr = input("Geburtsjahr: ")
  34.     print()
  35.     result, pdf = get_pdf(code, geburts_jahr)
  36.  
  37.     match result:
  38.         case "negative":
  39.             print("Das Testergebnis ist negativ!")
  40.             print("Hier das Zertifikat für Ungeimpfte:", pdf)
  41.             print()
  42.  
  43.             pdf_datei = f"{datetime.date.today().isoformat()}_Testergebnis.pdf"
  44.             response = requests.get(pdf, stream=True)
  45.            
  46.             with open(pdf_datei, "wb") as fd:
  47.                 for chunk in response.iter_content(1024):
  48.                     fd.write(chunk)
  49.  
  50.             print(f"Das Testergebnis wurde als {pdf_datei} gespeichert.")
  51.            
  52.         case "failed":
  53.             print("Fehler beim Geburtsdatum")
  54.  
  55.         case "not ready":
  56.             print("Testergebnis steht noch nicht bereit.")        
  57.  
  58.         case "error":
  59.             print("Irgendwas lief bei der Abfrage schief. Möglicherweise ist der Code falsch")
  60.  
  61.         case "positive":
  62.             print("2 Wochen Urlaub.... GEIL!!!!!")
  63.  
  64.         case _:
  65.             print("Äääääh, irgendwas anderes...")
  66.             print(result)
  67.  
  68. if __name__ == "__main__":
  69.     main()
  70.    
  71.    
  72. # todo: Dokument direkt drucken!
  73. #       mögliche Fehler korrigieren
  74.  
RAW Paste Data