use separate method to get model name
authorMoritz Warning <moritzwarning@web.de>
Mon, 2 Mar 2020 12:18:30 +0000 (13:18 +0100)
committerMoritz Warning <moritzwarning@web.de>
Mon, 2 Mar 2020 12:18:30 +0000 (13:18 +0100)
misc/collect.py

index 16b906547a59d47b23ed43dd7a87337d6a7d807a..fca0b02d91e7c0c5eb7eb8acc16fa7fc9feb357f 100755 (executable)
@@ -30,6 +30,12 @@ if args.input_path:
   for path in Path(args.input_path).rglob('*.json'):
     paths.append(path)
 
+def get_title_name(title):
+  if 'title' in title:
+    return title['title']
+  else:
+    return "{} {} {}".format(title.get('vendor', ''), title['model'], title.get('variant', '')).strip()
+
 # json output data
 output = {}
 for path in paths:
@@ -63,12 +69,13 @@ for path in paths:
       target = obj['target']
       id = obj['id']
       for title in obj['titles']:
-        if 'title' in title:
-          name = title['title']
-          output['models'][name] = {'id': id, 'target': target, 'images': images}
-        else:
-          name = "{} {} {}".format(title.get('vendor', ''), title['model'], title.get('variant', '')).strip()
-          output['models'][name] = {'id': id, 'target': target, 'images': images}
+        name = get_title_name(title)
+
+        if len(name) == 0:
+          sys.stderr.write("Empty title. Skip title in {}\n".format(path))
+          continue
+
+        output['models'][name] = {'id': id, 'target': target, 'images': images}
 
     except json.decoder.JSONDecodeError as e:
       sys.stderr.write("Skip {}\n   {}\n".format(path, e))