Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 167 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
@ -0,0 +1,409 @@ |
|||||
|
{ |
||||
|
"applications": { |
||||
|
"petio": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/petio/petio-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"rutorrent": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/rutorrent/rutorrent-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"duplicacy": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/duplicacy/duplicacy-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"gaps": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/gaps/gaps-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"pihole": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/pihole/pihole-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"kitana": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/kitana/kitana-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"bitwarden": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/bitwarden/bitwarden-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"prowlarr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/prowlarr/prowlarr-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"logarr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/logarr/logarr-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"adguard": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/adguard/adguard-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"resilio-sync": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/resilio-sync/resilio-sync-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"librespeed": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/librespeed/librespeed-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"deluge": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/deluge/deluge-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"unraid": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/unraid/unraid-base.css?sha=4dd9253", |
||||
|
"addons": { |
||||
|
"login-page": { |
||||
|
"alien": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/green.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/white.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/red.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/blue.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/custom.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/amber.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/retro-terminal-base.css?sha=4dd9253" |
||||
|
] |
||||
|
}, |
||||
|
"fallout": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/green.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/white.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/red.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/blue.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/custom.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/amber.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/retro-terminal-base.css?sha=4dd9253" |
||||
|
] |
||||
|
}, |
||||
|
"retro-terminal": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/green.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/white.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/red.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/blue.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/custom.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/amber.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/retro-terminal-base.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"gitea": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/gitea/gitea-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"emby": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/emby/emby-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"transmission": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/transmission/transmission-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"plpp": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/plpp/plpp-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"organizr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/organizr/organizr-base.css?sha=4dd9253", |
||||
|
"addons": { |
||||
|
"glass": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/organizr/glass/glass-login.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/organizr/glass/glass-base.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"nzbget": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/nzbget/nzbget-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"bazarr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/bazarr/bazarr-base.css?sha=4dd9253", |
||||
|
"addons": { |
||||
|
"bazarr-4k-logo": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/bazarr/bazarr-4k-logo/bazarr-4k-logo.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"moviematch": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/moviematch/moviematch-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"vuetorrent": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/vuetorrent/vuetorrent-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"sabnzbd": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/sabnzbd/sabnzbd-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"synclounge": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/synclounge/synclounge-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"netdata": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/netdata/netdata-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"grafana": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/grafana/grafana-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"jackett": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/jackett/jackett-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"nzbhydra2": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/nzbhydra2/nzbhydra2-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"ombi": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/ombi/ombi-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"dozzle": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/dozzle/dozzle-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"lazylibrarian": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/lazylibrarian/lazylibrarian-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"requestrr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/requestrr/requestrr-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"thelounge": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/thelounge/thelounge-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"sonarr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/sonarr/sonarr-base.css?sha=4dd9253", |
||||
|
"addons": { |
||||
|
"sonarr-4k-logo": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/sonarr/sonarr-4k-logo/sonarr-4k-logo.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"portainer": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/portainer/portainer-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"plex": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/plex/plex-base.css?sha=4dd9253", |
||||
|
"addons": { |
||||
|
"overseer-side-menu": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/plex/overseer-side-menu/overseer-side-menu.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"filebrowser": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/filebrowser/filebrowser-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"radarr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/radarr/radarr-base.css?sha=4dd9253", |
||||
|
"addons": { |
||||
|
"radarr-4k-logo": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/radarr/radarr-4k-logo/radarr-4k-logo.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"xbackbone": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/xbackbone/xbackbone-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"calibreweb": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/calibreweb/calibreweb-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"qbittorrent": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/qbittorrent/qbittorrent-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"guacamole": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/guacamole/guacamole-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"webtools": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/webtools/webtools-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"monitorr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/monitorr/monitorr-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"lidarr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/lidarr/lidarr-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"jellyfin": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/jellyfin/jellyfin-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"flood": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/flood/flood-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"tautulli": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/tautulli/tautulli-base.css?sha=4dd9253", |
||||
|
"addons": {} |
||||
|
}, |
||||
|
"readarr": { |
||||
|
"base_css": "https://theme-park.dev/CSS/themes/readarr/readarr-base.css?sha=4dd9253", |
||||
|
"addons": { |
||||
|
"readarr-alt-logo": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/readarr/readarr-alt-logo/readarr-alt-logo.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"addons": { |
||||
|
"unraid": { |
||||
|
"login-page": { |
||||
|
"alien": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/green.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/white.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/red.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/blue.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/custom.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/amber.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/alien/retro-terminal-base.css?sha=4dd9253" |
||||
|
] |
||||
|
}, |
||||
|
"fallout": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/green.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/white.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/red.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/blue.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/custom.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/amber.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/fallout/retro-terminal-base.css?sha=4dd9253" |
||||
|
] |
||||
|
}, |
||||
|
"retro-terminal": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/green.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/white.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/red.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/blue.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/custom.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/amber.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/unraid/login-page/retro-terminal/retro-terminal-base.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"organizr": { |
||||
|
"glass": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/organizr/glass/glass-login.css?sha=4dd9253", |
||||
|
"https://theme-park.dev/CSS/addons/organizr/glass/glass-base.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"bazarr": { |
||||
|
"bazarr-4k-logo": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/bazarr/bazarr-4k-logo/bazarr-4k-logo.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"sonarr": { |
||||
|
"sonarr-4k-logo": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/sonarr/sonarr-4k-logo/sonarr-4k-logo.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"plex": { |
||||
|
"overseer-side-menu": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/plex/overseer-side-menu/overseer-side-menu.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"radarr": { |
||||
|
"radarr-4k-logo": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/radarr/radarr-4k-logo/radarr-4k-logo.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"readarr": { |
||||
|
"readarr-alt-logo": { |
||||
|
"css": [ |
||||
|
"https://theme-park.dev/CSS/addons/readarr/readarr-alt-logo/readarr-alt-logo.css?sha=4dd9253" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"themes": { |
||||
|
"Plex": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/plex.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Organizr-dark": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/organizr-dark.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Space-gray": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/space-gray.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Time": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/time.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Hotline": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/hotline.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Soul": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/soul.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Hotpink": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/hotpink.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Power": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/power.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Mind": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/mind.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Aquamarine": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/aquamarine.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Dracula": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/dracula.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Space": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/space.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Dark": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/dark.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Overseerr": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/overseerr.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Reality": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/reality.css?sha=4dd9253" |
||||
|
}, |
||||
|
"Onedark": { |
||||
|
"url": "https://theme-park.dev/CSS/variables/onedark.css?sha=4dd9253" |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,85 @@ |
|||||
|
from os import listdir |
||||
|
from os.path import isdir, isfile, join |
||||
|
from json import dump,dumps, loads |
||||
|
import argparse |
||||
|
|
||||
|
def create_addons_json(sha): |
||||
|
ADDONS = {"addons":{}} |
||||
|
addon_root = './CSS/addons' |
||||
|
addon_folders = [name for name in listdir(addon_root) if isdir(join(addon_root, name))] |
||||
|
for app in addon_folders: |
||||
|
app_addons = [addon for addon in listdir(f"{addon_root}/{app}")] |
||||
|
ADDONS["addons"].update({ |
||||
|
app: { |
||||
|
addon: {} for addon in app_addons |
||||
|
} |
||||
|
}) |
||||
|
for addon in app_addons: |
||||
|
files = [file for file in listdir( |
||||
|
f"{addon_root}/{app}/{addon}") if isfile(join(f"{addon_root}/{app}/{addon}", file))] |
||||
|
ADDONS["addons"].update({ |
||||
|
app: { |
||||
|
addon: { |
||||
|
"css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{file}?sha={sha}" for file in files if file.split(".")[1] == "css"] |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
extra_dirs = [dir for dir in listdir( |
||||
|
f"{addon_root}/{app}/{addon}") if isdir(join(f"{addon_root}/{app}/{addon}", dir))] |
||||
|
if extra_dirs: |
||||
|
for dir in extra_dirs: |
||||
|
extra_dir_files = [file for file in listdir( |
||||
|
f"{addon_root}/{app}/{addon}/{dir}") if isfile(join(f"{addon_root}/{app}/{addon}/{dir}", file))] |
||||
|
ADDONS["addons"][app].update({ |
||||
|
addon: { |
||||
|
dir: { |
||||
|
"css": [f"https://{DOMAIN}/CSS/addons/{app}/{addon}/{dir}/{extra_file}?sha={sha}" for extra_file in extra_dir_files if extra_file.split(".")[1] == "css"] |
||||
|
} for dir in extra_dirs |
||||
|
} |
||||
|
}) |
||||
|
return dumps(ADDONS) |
||||
|
|
||||
|
def create_json(sha,app_folders:list=None,themes:list=None,no_sub_folders=False): |
||||
|
if no_sub_folders: |
||||
|
THEMES = {} |
||||
|
for theme in themes: |
||||
|
THEMES.update({ |
||||
|
"themes": { |
||||
|
theme.split(".")[0].capitalize(): { |
||||
|
"url": f"https://{DOMAIN}/CSS/variables/{theme}?sha={sha}" |
||||
|
}for theme in themes |
||||
|
} |
||||
|
}) |
||||
|
return dumps(THEMES) |
||||
|
else: |
||||
|
ADDONS = loads(create_addons_json(sha)) |
||||
|
APPS = {"applications":{}} |
||||
|
for app in app_folders: |
||||
|
APPS.update({ |
||||
|
"applications":{ |
||||
|
app: { |
||||
|
"base_css": f"https://{DOMAIN}/CSS/themes/{app}/{app}-base.css?sha={sha}", |
||||
|
"addons": ADDONS["addons"][app] if app in ADDONS["addons"] else {} |
||||
|
} for app in app_folders |
||||
|
} |
||||
|
} |
||||
|
) |
||||
|
THEMES = loads(create_json(sha,themes=themes,no_sub_folders=True)) |
||||
|
APPS.update(ADDONS) |
||||
|
APPS.update(THEMES) |
||||
|
return dumps(APPS) |
||||
|
|
||||
|
if __name__== "__main__": |
||||
|
|
||||
|
parser = argparse.ArgumentParser("Creates a JSON file with some information on all applications and themes") |
||||
|
parser.add_argument("--sha", required=True, help="This is the commit SHA we use for 'versioning' on CSS files") |
||||
|
args = parser.parse_args() |
||||
|
|
||||
|
sha = args.sha |
||||
|
app_folders = [name for name in listdir('./CSS/themes') if isdir(join('./CSS/themes', name))] |
||||
|
themes = [name for name in listdir('./CSS/variables') if isfile(join('./CSS/variables', name))] |
||||
|
DOMAIN = open("CNAME","rt",closefd=True).readline() |
||||
|
apps = loads(create_json(sha,app_folders,themes)) |
||||
|
|
||||
|
with open("themes.json", "w") as outfile: |
||||
|
dump(apps, outfile,indent=2) |