From d89d97b61f2ede5ede7b52d9b52cab40a9463569 Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 3 Nov 2024 11:44:30 +0800 Subject: [PATCH] added predefined homepage categories --- internal/config/query.go | 12 +++++++ internal/homepage/categories.go | 64 +++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 internal/homepage/categories.go diff --git a/internal/config/query.go b/internal/config/query.go index 879204c..6f7b6a7 100644 --- a/internal/config/query.go +++ b/internal/config/query.go @@ -69,6 +69,18 @@ func HomepageConfig() homepage.Config { ) } + if en.Container != nil && item.Category == "" { + if category, ok := homepage.PredefinedCategories[en.Container.ImageName]; ok { + item.Category = category + } + } + + if item.Category == "" { + if category, ok := homepage.PredefinedCategories[strings.ToLower(alias)]; ok { + item.Category = category + } + } + switch { case entry.IsDocker(r): if item.Category == "" { diff --git a/internal/homepage/categories.go b/internal/homepage/categories.go new file mode 100644 index 0000000..7de09b8 --- /dev/null +++ b/internal/homepage/categories.go @@ -0,0 +1,64 @@ +package homepage + +// PredefinedCategories by alias or docker image name +var PredefinedCategories = map[string]string{ + "sonarr": "Torrenting", + "radarr": "Torrenting", + "bazarr": "Torrenting", + "lidarr": "Torrenting", + "readarr": "Torrenting", + "prowlarr": "Torrenting", + "watcharr": "Torrenting", + "qbittorrent": "Torrenting", + "qbit": "Torrenting", + "qbt": "Torrenting", + "transmission": "Torrenting", + + "jellyfin": "Media", + "jellyseerr": "Media", + "emby": "Media", + "plex": "Media", + "navidrome": "Media", + "immich": "Media", + "tautulli": "Media", + "nextcloud": "Media", + "invidious": "Media", + + "uptime": "Monitoring", + "uptime-kuma": "Monitoring", + "prometheus": "Monitoring", + "grafana": "Monitoring", + "netdata": "Monitoring", + "changedetection.io": "Monitoring", + "changedetection": "Monitoring", + "influxdb": "Monitoring", + "influx": "Monitoring", + "dozzle": "Monitoring", + + "adguardhome": "Networking", + "adgh": "Networking", + "adg": "Networking", + "pihole": "Networking", + "flaresolverr": "Networking", + + "homebridge": "Home Automation", + "home-assistant": "Home Automation", + + "dockge": "Container Management", + "portainer-ce": "Container Management", + "portainer-be": "Container Management", + + "rss": "RSS", + "rsshub": "RSS", + "rss-bridge": "RSS", + "miniflux": "RSS", + "freshrss": "RSS", + + "paperless": "Documents", + "paperless-ngx": "Documents", + "s-pdf": "Documents", + + "minio": "Storage", + "filebrowser": "Storage", + "rclone": "Storage", +}