From 2f1b35b3fafaba80f69abff7ef946fc04613da9f Mon Sep 17 00:00:00 2001 From: gerard780 <gerard780@users.noreply.github.com> Date: Mon, 30 Dec 2019 14:01:59 -0500 Subject: [PATCH] added support for timezones with - offset introduced new regexp to better handle timestamps with a negative timezone offset like '2019-21-30T14:01:46.79231-05:00' --- pwnagotchi/plugins/default/webgpsmap.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pwnagotchi/plugins/default/webgpsmap.py b/pwnagotchi/plugins/default/webgpsmap.py index 3d7ae4d..f09f131 100644 --- a/pwnagotchi/plugins/default/webgpsmap.py +++ b/pwnagotchi/plugins/default/webgpsmap.py @@ -308,12 +308,17 @@ class PositionFile: if date_iso_formated.endswith("Z"): date_iso_formated = date_iso_formated[:-1] + "+00:00" # bad microseconds fix: fill/cut microseconds to 6 numbers - part1, part2, part3 = re.split('\.|\+', date_iso_formated) + parts = re.split('^(([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[Tt]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.[0-9]+)?(([Zz])|([\+|\-]([01][0-9]|2[0-3]):?[0-5][0-9]))$', date_iso_formated) + + part1 = parts[1] + part2 = parts[8][1:] + part3 = parts[11] + part2 = part2.ljust(6, '0')[:6] # timezone fix: 0200 >>> 02:00 - if len(part3) == 4: - part3 = part3[1:2].rjust(2, '0') + ':' + part3[3:4].rjust(2, '0') - date_iso_formated = part1 + "." + part2 + "+" + part3 + if len(part3) == 5: + part3 = part3[0:1] + part3[1:2].rjust(2, '0') + ':' + part3[3:4].rjust(2, '0') + date_iso_formated = part1 + "." + part2 + part3 dateObj = datetime.datetime.fromisoformat(date_iso_formated) return_ts = int("%.0f" % dateObj.timestamp()) else: