Add automatic empty icon on missing in visualize script

This commit is contained in:
Tobias Reisinger 2026-10-25 22:56:15 +01:00
commit 44efb8aa71
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE

View file

@ -2,6 +2,7 @@
import json import json
import sys import sys
import requests
import jinja2 import jinja2
import hcl2 import hcl2
@ -12,9 +13,6 @@ icon_overrides = {
"backup": "restic", "backup": "restic",
"calibre_web": "calibre-web", "calibre_web": "calibre-web",
"deploy": "adnanh-webhook", "deploy": "adnanh-webhook",
"dmarc_report": None,
"emgauwa": None,
"extra_services": None,
"forgejo_runner": "forgejo", "forgejo_runner": "forgejo",
"foundryvtt": "foundry-virtual-tabletop", "foundryvtt": "foundry-virtual-tabletop",
"healthcheck": "healthchecks", "healthcheck": "healthchecks",
@ -25,8 +23,6 @@ icon_overrides = {
"minecraft_3": "minecraft", "minecraft_3": "minecraft",
"node_exporter": "prometheus", "node_exporter": "prometheus",
"paperless": "paperless-ngx", "paperless": "paperless-ngx",
"phpvms": None,
"phpvms_test": None,
"reitanlage_oranienburg": "grav", "reitanlage_oranienburg": "grav",
"tandoor": "tandoor-recipes", "tandoor": "tandoor-recipes",
"tinytinyrss": "tiny-tiny-rss", "tinytinyrss": "tiny-tiny-rss",
@ -49,7 +45,7 @@ icon_url = {
} }
def get_icon(svc): def get_icon(svc):
svc = icon_overrides.get(svc, svc) or 'docker' svc = icon_overrides.get(svc, svc)
fmt = icon_format.get(svc, 'svg') fmt = icon_format.get(svc, 'svg')
return icon_url.get(svc, f'https://cdn.jsdelivr.net/gh/selfhst/icons/{fmt}/{svc}.{fmt}') return icon_url.get(svc, f'https://cdn.jsdelivr.net/gh/selfhst/icons/{fmt}/{svc}.{fmt}')
@ -84,7 +80,11 @@ def parse_service(svc, data, hosts):
data['key'] = svc_key data['key'] = svc_key
data['host_key'] = host_key(data["host"], hosts) data['host_key'] = host_key(data["host"], hosts)
data['label'] = "\\n".join([svc] + domains) data['label'] = "\\n".join([svc] + domains)
data['icon'] = get_icon(svc) data['icon'] = get_icon(svc)
r = requests.get(data['icon'])
if r.status_code != 200:
data['icon'] = get_icon('docker')
return dict(data) return dict(data)