From 8d7cb827fa8eacffe0ab825a4f8f7c4d412ef72f Mon Sep 17 00:00:00 2001 From: Mike A Date: Fri, 26 Apr 2024 20:33:11 +0200 Subject: [PATCH] reports: skip undecodable payloads rather than raising --- findmy/reports/reports.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/findmy/reports/reports.py b/findmy/reports/reports.py index f853506..560f8c8 100644 --- a/findmy/reports/reports.py +++ b/findmy/reports/reports.py @@ -270,6 +270,19 @@ class LocationReportsFetcher: description = report.get("description", "") payload = base64.b64decode(report["payload"]) - reports.append(LocationReport.from_payload(key, date_published, description, payload)) + try: + loc_report = LocationReport.from_payload(key, date_published, description, payload) + except ValueError as e: + logging.warning( + "Location report was not decodable. Some payloads have unknown" + " variations leading to this error. Please report this full message" + " at https://github.com/malmeloo/FindMy.py/issues/27. " + "Payload: %s, Original error: %s", + payload.hex(), + e, + ) + continue + + reports.append(loc_report) return reports