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