From de203194486fba1b5c83c0eea6f97ac872303610 Mon Sep 17 00:00:00 2001 From: Yannik Schmidt Date: Sun, 24 Dec 2023 14:45:35 +0100 Subject: [PATCH] fix: handle retrieval error for weather data --- src/main/python/input_backend.py | 6 ++++++ src/main/python/localization/de.py | 2 ++ src/main/python/main.py | 9 +++++---- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/python/input_backend.py b/src/main/python/input_backend.py index 9cb3d7e..1010255 100644 --- a/src/main/python/input_backend.py +++ b/src/main/python/input_backend.py @@ -126,6 +126,12 @@ def processExternalData(datapoints, plotNameKey, fromTime, toTime, dtype, qtText # download date if it doesn't exist # url = CFG("outside_data_url").format(dtype=dtype, fromDate=fromTimeStr, toDate=toTimeStr) r = requests.get(url) + + # check response code # + if r.status_code != 200 or "nicht gefunden" in r.text.lower(): + qtTextBrowser.append(de.failed_to_retrieve.format("NOT FOUND")) + raise ValueError("FAILED TO RETRIEVE DATA") + qtTextBrowser.append(de.pg_request.format(url)) content = r.content.decode('utf-8', "ignore") # ignore bad bytes diff --git a/src/main/python/localization/de.py b/src/main/python/localization/de.py index b0c7315..fbf3d9a 100644 --- a/src/main/python/localization/de.py +++ b/src/main/python/localization/de.py @@ -42,3 +42,5 @@ info_divergence = "INFO: Seitenverhältnisabweichung zu A4: {:.2f}%" success = "INFO: Fertig." testing_input = "Info: Eingabedatei wird geprüft..." testing_input_suc = "Info: Eingabedatei akzeptiert." + +failed_to_retrieve = "ERROR: Kann Wetterarchiv-Daten nicht herunterladen ({})" diff --git a/src/main/python/main.py b/src/main/python/main.py index bd506e3..a1f4917 100755 --- a/src/main/python/main.py +++ b/src/main/python/main.py @@ -169,20 +169,21 @@ class WidgetGallery(QDialog): # workaround for checkboxes changed # outsideDataNeeded = self.boxOTemp.isChecked() or self.boxOHumidity.isChecked() - self.datapoints = input_backend.read_in_file(self.srcFileString, + + # build dates # + try: + self.datapoints = input_backend.read_in_file(self.srcFileString, outsideData=outsideDataNeeded, plotOutsideTemp=self.boxOTemp.isChecked(), plotOutsideHum=self.boxOHumidity.isChecked(), qtTextBrowser=self.infoTextBox) - # build dates # - try: startTimeHelper = dt.datetime.strptime(self.startTimeEdit.text(),"%H:%M") endTimeHelper = dt.datetime.strptime(self.endTimeEdit.text(),"%H:%M") except ValueError as e: errorBox = QMessageBox(self) errorBox.setAttribute(PyQt5.QtCore.Qt.WA_DeleteOnClose) - errorBox.setText(self.localization.bad_time) + errorBox.setText(str(e)) errorBox.setDetailedText(str(e)) errorBox.show() self.buttonGo.setText(self.localization.button_go)