From 3bc685b0ef5a2990f8c174dd7277c73a84bbd25c Mon Sep 17 00:00:00 2001 From: Leonard Penzer <leonard@penzer.de> Date: Thu, 18 Jun 2020 21:01:11 +0000 Subject: [PATCH] restrict hostname to ascii characters Avoids this error on certain hostnames: UnicodeEncodeError: 'ascii' codec can't encode character '\xf6' in position 24: ordinal not in range(128) --- update_checker.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/update_checker.py b/update_checker.py index aa1624c..07667cc 100755 --- a/update_checker.py +++ b/update_checker.py @@ -15,6 +15,9 @@ ap = argparse.ArgumentParser() ap.add_argument("--raw", type=argparse.FileType("r", encoding="utf-8"), required=True) args = ap.parse_args() +def filterNonAscii(s): + return s.encode("ascii", errors="ignore").decode() + def getHardwareModelFromEntry(d): try: hardware_model = d["nodeinfo"]["hardware"]["model"] @@ -116,7 +119,7 @@ for download in allFirmwareDownloads: hostname = d["nodeinfo"]["hostname"] hardware_model = getHardwareModelFromEntry(d) if currentRelease < r.release: - print("%s (%s) %s -> %s Segment %i %s status %s @ %s" % (mac, hostname, currentRelease, r.release, r.segment, hardware_model, status, r.date)) + print("%s (%s) %s -> %s Segment %i %s status %s @ %s" % (mac, filterNonAscii(hostname), currentRelease, r.release, r.segment, hardware_model, status, r.date)) else: #request = requests.get(MAC_URL % mac) #pprint.pprint(request.json()) -- GitLab