diff --git a/css/base/grafana/grafana-base.css b/css/base/grafana/grafana-base.css index dcaa69b1..6a30899f 100644 --- a/css/base/grafana/grafana-base.css +++ b/css/base/grafana/grafana-base.css @@ -58,7 +58,8 @@ p { } .page-header-canvas, -.page-toolbar[class*="css-"] { +.page-toolbar[class*="css-"], +.css-278jzv { background: var(--transparency-dark-25) !important; box-shadow: none !important; border-bottom: none !important; @@ -534,7 +535,8 @@ p { } /* PANEL BACKGROUND COLOR*/ -.panel-container { +.panel-container, +.css-85us1i-panel-container { background: var(--transparency-dark-25); border: transparent; box-shadow: none !important; @@ -1308,4 +1310,4 @@ input:checked+.gf-form-switch__slider { ::-webkit-input-placeholder { color: var(--text-hover) !important; -} \ No newline at end of file +} diff --git a/css/base/organizr/organizr-base.css b/css/base/organizr/organizr-base.css index b5cefef2..570b5209 100644 --- a/css/base/organizr/organizr-base.css +++ b/css/base/organizr/organizr-base.css @@ -1451,6 +1451,10 @@ a:hover, background: var(--transparency-light-20); } +#homepageOrderUptimeKuma .card-body { + background: var(--transparency-light-20); +} + .card, .card-body { border-radius: 3px; diff --git a/css/base/pihole/pihole-base.css b/css/base/pihole/pihole-base.css index aac0de22..be8f084b 100644 --- a/css/base/pihole/pihole-base.css +++ b/css/base/pihole/pihole-base.css @@ -411,11 +411,11 @@ } /* Network */ - .table-striped>tbody>tr:nth-of-type(odd) { + .table-striped>tbody>tr:nth-of-type(odd):not(#network-details .table-striped>tbody>tr:nth-of-type(odd)) { background: var(--transparency-dark-25) !important; } - .table-striped>tbody>tr:nth-of-type(even) { + .table-striped>tbody>tr:nth-of-type(even):not(#network-details .table-striped>tbody>tr:nth-of-type(even)) { background: var(--transparency-dark-50) !important; } diff --git a/css/base/tautulli/tautulli-base.css b/css/base/tautulli/tautulli-base.css index baf00163..cdb25f22 100644 --- a/css/base/tautulli/tautulli-base.css +++ b/css/base/tautulli/tautulli-base.css @@ -206,7 +206,7 @@ select, .dashboard-stats-background, .dashboard-activity-background, .dashboard-activity-poster-container { - background: var(--transparency-dark-25); + background-color: var(--transparency-dark-25); } .dashboard-activity-progress-bar { diff --git a/docker-mods/lidarr/root/etc/cont-init.d/98-themepark b/docker-mods/lidarr/root/etc/cont-init.d/98-themepark index c27cd010..d782d345 100644 --- a/docker-mods/lidarr/root/etc/cont-init.d/98-themepark +++ b/docker-mods/lidarr/root/etc/cont-init.d/98-themepark @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/lidarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/lidarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run index 0b1471c2..14083437 100644 --- a/docker-mods/lidarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run +++ b/docker-mods/lidarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/nginx-proxy-manager/root/etc/cont-init.d/98-themepark b/docker-mods/nginx-proxy-manager/root/etc/cont-init.d/98-themepark index 8bdef50b..bf9b6647 100644 --- a/docker-mods/nginx-proxy-manager/root/etc/cont-init.d/98-themepark +++ b/docker-mods/nginx-proxy-manager/root/etc/cont-init.d/98-themepark @@ -1,4 +1,4 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash echo '--------------------------------------' echo '| Nginx Proxy Manager theme.park Mod |' diff --git a/docker-mods/nginx-proxy-manager/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/nginx-proxy-manager/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run index 8bdef50b..bf9b6647 100644 --- a/docker-mods/nginx-proxy-manager/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run +++ b/docker-mods/nginx-proxy-manager/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -1,4 +1,4 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash echo '--------------------------------------' echo '| Nginx Proxy Manager theme.park Mod |' diff --git a/docker-mods/prowlarr/root/etc/cont-init.d/98-themepark b/docker-mods/prowlarr/root/etc/cont-init.d/98-themepark index 24aa5eca..537108d8 100644 --- a/docker-mods/prowlarr/root/etc/cont-init.d/98-themepark +++ b/docker-mods/prowlarr/root/etc/cont-init.d/98-themepark @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/prowlarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/prowlarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run index 37afbbbd..bd68c4a9 100644 --- a/docker-mods/prowlarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run +++ b/docker-mods/prowlarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/qbittorrent/root/etc/cont-init.d/98-themepark b/docker-mods/qbittorrent/root/etc/cont-init.d/98-themepark index dc6916b5..8993c58f 100644 --- a/docker-mods/qbittorrent/root/etc/cont-init.d/98-themepark +++ b/docker-mods/qbittorrent/root/etc/cont-init.d/98-themepark @@ -98,8 +98,8 @@ sed_file(){ } clean_file() { - perl -i -pe 's/QBT_TR?\(//' "$1" - perl -i -pe 's/\)QBT_TR\[CONTEXT=.*?\]//' "$1" + perl -i -pe 's/QBT_TR?\(//g' "$1" + perl -i -pe 's/\)QBT_TR\[CONTEXT=.*?\]//g' "$1" } if ! grep -q "${TP_DOMAIN}/css/base" /themepark/public/index.html; then @@ -117,10 +117,9 @@ if ! grep -q "${TP_DOMAIN}/css/base" /themepark/public/index.html; then fi # Clean all files -printf 'Cleaning files in /themepark for any translation text...\n\n --------------------------------------------------------------------------- -| !!! RESTART THE CONTAINER IF THIS IS THE FIRST TIME CLEANING FILES !!! | ---------------------------------------------------------------------------\n\n' +echo '------------------------------------------------------------' +echo '| Cleaning files in /themepark for any translation text... |' +echo '------------------------------------------------------------' find /themepark -type f \( ! -iname "*.svg" \) | while read fname do clean_file $fname diff --git a/docker-mods/qbittorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/qbittorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run index 0d884081..52892435 100644 --- a/docker-mods/qbittorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run +++ b/docker-mods/qbittorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -83,8 +83,8 @@ sed_file(){ } clean_file() { - perl -i -pe 's/QBT_TR?\(//' "$1" - perl -i -pe 's/\)QBT_TR\[CONTEXT=.*?\]//' "$1" + perl -i -pe 's/QBT_TR?\(//g' "$1" + perl -i -pe 's/\)QBT_TR\[CONTEXT=.*?\]//g' "$1" } if ! grep -q "${TP_DOMAIN}/css/base" /themepark/public/index.html; then @@ -102,10 +102,9 @@ if ! grep -q "${TP_DOMAIN}/css/base" /themepark/public/index.html; then fi # Clean all files -printf 'Cleaning files in /themepark for any translation text...\n\n --------------------------------------------------------------------------- -| !!! RESTART THE CONTAINER IF THIS IS THE FIRST TIME CLEANING FILES !!! | ---------------------------------------------------------------------------\n\n' +echo '------------------------------------------------------------' +echo '| Cleaning files in /themepark for any translation text... |' +echo '------------------------------------------------------------' find /themepark -type f \( ! -iname "*.svg" \) | while read fname do clean_file $fname diff --git a/docker-mods/radarr/root/etc/cont-init.d/98-themepark b/docker-mods/radarr/root/etc/cont-init.d/98-themepark index 6c4e634d..2945c949 100644 --- a/docker-mods/radarr/root/etc/cont-init.d/98-themepark +++ b/docker-mods/radarr/root/etc/cont-init.d/98-themepark @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/radarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/radarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run index 4051c1fd..bc39ae49 100644 --- a/docker-mods/radarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run +++ b/docker-mods/radarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/readarr/root/etc/cont-init.d/98-themepark b/docker-mods/readarr/root/etc/cont-init.d/98-themepark index 19185740..00e30314 100644 --- a/docker-mods/readarr/root/etc/cont-init.d/98-themepark +++ b/docker-mods/readarr/root/etc/cont-init.d/98-themepark @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s/// /g" "${APP_FILEPATH}" + sed -i "s/// /g" "${APP_FILEPATH}" + sed -i "s/// /g" "${LOGIN_FILEPATH}" + sed -i "s/// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s/// /g" "${APP_FILEPATH}" + sed -i "s/// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/readarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/readarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run index 28f2b78d..19ac27f2 100644 --- a/docker-mods/readarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run +++ b/docker-mods/readarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s/// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/sonarr/root/etc/cont-init.d/98-themepark b/docker-mods/sonarr/root/etc/cont-init.d/98-themepark index 31c35abc..501578f2 100644 --- a/docker-mods/sonarr/root/etc/cont-init.d/98-themepark +++ b/docker-mods/sonarr/root/etc/cont-init.d/98-themepark @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/sonarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/sonarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run index 636eb2ae..a854a510 100644 --- a/docker-mods/sonarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run +++ b/docker-mods/sonarr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/whisparr/root/etc/cont-init.d/98-themepark b/docker-mods/whisparr/root/etc/cont-init.d/98-themepark index 38dacbeb..c8ab5aa8 100644 --- a/docker-mods/whisparr/root/etc/cont-init.d/98-themepark +++ b/docker-mods/whisparr/root/etc/cont-init.d/98-themepark @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/docker-mods/whisparr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/whisparr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run index 8f710aaa..1647b4f2 100644 --- a/docker-mods/whisparr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run +++ b/docker-mods/whisparr/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -52,15 +52,15 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then echo '---------------------------' echo '| Adding the stylesheet |' echo '---------------------------' - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Stylesheet set to %s\n' "${TP_THEME}" if [[ -n ${TP_ADDON} ]]; then for addon in $(echo "$TP_ADDON" | tr "|" " "); do - sed -i "s/<\/head>/<\/head> /g" "${APP_FILEPATH}" - sed -i "s/<\/head>/<\/head> /g" "${LOGIN_FILEPATH}" + sed -i "s// /g" "${APP_FILEPATH}" + sed -i "s// /g" "${LOGIN_FILEPATH}" printf 'Added custom addon: %s\n\n' "${addon}" done fi diff --git a/linux-amd64.Dockerfile b/linux-amd64.Dockerfile index b5df2588..e56c810d 100644 --- a/linux-amd64.Dockerfile +++ b/linux-amd64.Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.16 # set version label ARG BUILD_DATE diff --git a/linux-arm-v7.Dockerfile b/linux-arm-v7.Dockerfile index 8992e1a5..aac929d3 100644 --- a/linux-arm-v7.Dockerfile +++ b/linux-arm-v7.Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.16 # set version label ARG BUILD_DATE diff --git a/linux-arm64.Dockerfile b/linux-arm64.Dockerfile index 3d338d72..e1143873 100644 --- a/linux-arm64.Dockerfile +++ b/linux-arm64.Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.14 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.16 # set version label ARG BUILD_DATE diff --git a/themes.py b/themes.py index 33db08a0..c6cb0a2b 100644 --- a/themes.py +++ b/themes.py @@ -1,13 +1,14 @@ #! /usr/bin/env python3 -from os import defpath, listdir, environ as env, chdir +from os import defpath, listdir, environ as env, chdir, getcwd from os.path import isdir, isfile, join, dirname, abspath from json import dump, dumps, loads, load import subprocess +from hashlib import md5 chdir(dirname(abspath(__file__))) # Set working dir -def get_shas(output): +def get_shas(output) -> dict[str, str]: """Returns a dict of CSS files and SHAs""" output_lines = output.splitlines() if output else [] sha_dict = {} @@ -19,9 +20,17 @@ def get_shas(output): return(sha_dict) -def create_addons_json(): - addon_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/addons/*.css"]) if isdir(".git") else [] - SHAS = get_shas(addon_shas) +def get_md5_hash(file_path) -> str: + """Returns the MD5 hash of a file""" + md5_hash = md5() + with open(file_path, "rb") as f: + for byte_block in iter(lambda: f.read(4096), b""): + md5_hash.update(byte_block) + return md5_hash.hexdigest() + +def create_addons_json() -> str: + #addon_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/addons/*.css"]) if isdir(".git") else [] + #SHAS = get_shas(addon_shas) ADDONS = {"addons": {}} addon_root = './css/addons' addon_folders = [name for name in listdir( @@ -38,12 +47,12 @@ def create_addons_json(): f"{addon_root}/{app}/{addon}") if isfile(join(f"{addon_root}/{app}/{addon}", file))] if len([f for f in files if f.endswith('.css')]) > 1: ADDONS["addons"][app][addon].update({ - "css": [f"{scheme}://{DOMAIN}/css/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css"] + "css": [f"{scheme}://{DOMAIN}/css/addons/{app}/{addon}/{file}?sha={get_md5_hash(join(getcwd(),'css','addons',app,addon,file))}" for file in files if file.split(".")[1] == "css"] } ) else: ADDONS["addons"][app].update({ - addon: f"{scheme}://{DOMAIN}/css/addons/{app}/{addon}/{file}?sha={SHAS.get(file)}" for file in files if file.split(".")[1] == "css" + addon: f"{scheme}://{DOMAIN}/css/addons/{app}/{addon}/{file}?sha={get_md5_hash(join(getcwd(),'css','addons',app,addon,file))}" for file in files if file.split(".")[1] == "css" } ) extra_dirs = [dir for dir in listdir( @@ -54,7 +63,7 @@ def create_addons_json(): f"{addon_root}/{app}/{addon}/{dir}") if isfile(join(f"{addon_root}/{app}/{addon}/{dir}", file))] ADDONS["addons"][app][addon].update({ dir: { - "css": [f"{scheme}://{DOMAIN}/css/addons/{app}/{addon}/{dir}/{extra_file}?sha={SHAS.get(extra_file)}" for extra_file in extra_dir_files if extra_file.split(".")[1] == "css"] + "css": [f"{scheme}://{DOMAIN}/css/addons/{app}/{addon}/{dir}/{extra_file}?sha={get_md5_hash(join(getcwd(),'css','addons',app,addon,dir,extra_file))}" for extra_file in extra_dir_files if extra_file.split(".")[1] == "css"] } } ) @@ -64,18 +73,18 @@ def create_addons_json(): def create_json(app_folders: list = None, themes: list = None, community_themes: list = None ,docker_mods: list = None, no_sub_folders=False) -> str: if no_sub_folders: THEMES_DICT = {} - theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/theme-options/*.css"]) if isdir(".git") else [] - community_theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/community-theme-options/*.css"]) if isdir(".git") else [] - THEME_SHAS = get_shas(theme_shas) - COMMUNITY_THEME_SHAS = get_shas(community_theme_shas) + #theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/theme-options/*.css"]) if isdir(".git") else [] + #community_theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/community-theme-options/*.css"]) if isdir(".git") else [] + #THEME_SHAS = get_shas(theme_shas) + #COMMUNITY_THEME_SHAS = get_shas(community_theme_shas) THEMES = { theme.split(".")[0].capitalize(): { - "url": f"{scheme}://{DOMAIN}/css/theme-options/{theme}?sha={THEME_SHAS.get(theme)}" + "url": f"{scheme}://{DOMAIN}/css/theme-options/{theme}?sha={get_md5_hash(join(getcwd(),'css','theme-options', theme))}" }for theme in themes if themes } COMMUNITY_THEMES = { theme.split(".")[0].capitalize(): { - "url": f"{scheme}://{DOMAIN}/css/community-theme-options/{theme}?sha={COMMUNITY_THEME_SHAS.get(theme)}" + "url": f"{scheme}://{DOMAIN}/css/community-theme-options/{theme}?sha={get_md5_hash(join(getcwd(),'css','community-theme-options', theme))}" }for theme in community_themes if community_themes } THEMES_DICT.update(dict(sorted({ @@ -93,12 +102,12 @@ def create_json(app_folders: list = None, themes: list = None, community_themes: else: ADDONS = loads(create_addons_json()) APPS = {} - app_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/base/*base.css"]) if isdir(".git") else [] - SHAS = get_shas(app_shas) + #app_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/base/*base.css"]) if isdir(".git") else [] + #SHAS = get_shas(app_shas) APPS.update(dict(sorted({ "applications": { app: { - "base_css": f"{scheme}://{DOMAIN}/css/base/{app}/{app}-base.css?sha={SHAS.get(f'{app}-base.css')}", + "base_css": f"{scheme}://{DOMAIN}/css/base/{app}/{app}-base.css?sha={get_md5_hash(join('css','base', app, f'{app}-base.css'))}", "addons": ADDONS["addons"][app] if app in ADDONS["addons"] else {} } for app in app_folders if not isfile(f'./css/base/{app}/.deprecated') } @@ -106,7 +115,7 @@ def create_json(app_folders: list = None, themes: list = None, community_themes: APPS.update(dict(sorted({ "deprecated": { app: { - "base_css": f"{scheme}://{DOMAIN}/css/base/{app}/{app}-base.css?sha={SHAS.get(f'{app}-base.css')}", + "base_css": f"{scheme}://{DOMAIN}/css/base/{app}/{app}-base.css?sha={get_md5_hash(join('css','base', app, f'{app}-base.css'))}", "addons": ADDONS["addons"][app] if app in ADDONS["addons"] else {} } for app in app_folders if isfile(f'./css/base/{app}/.deprecated') } @@ -122,16 +131,16 @@ def create_json(app_folders: list = None, themes: list = None, community_themes: return dumps(APPS) def create_theme_options() -> None: - app_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/base/*base.css"]) if isdir(".git") else [] - theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/theme-options/*.css"]) if isdir(".git") else [] - community_theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/community-theme-options/*.css"]) if isdir(".git") else [] - THEME_SHAS = get_shas(theme_shas) - COMMUNITY_THEME_SHAS = get_shas(community_theme_shas) - APP_SHAS = get_shas(app_shas) + #app_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/base/*base.css"]) if isdir(".git") else [] + #theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/theme-options/*.css"]) if isdir(".git") else [] + #community_theme_shas = subprocess.check_output(["git", "ls-files", "-s", "./css/community-theme-options/*.css"]) if isdir(".git") else [] + #THEME_SHAS = get_shas(theme_shas) + #COMMUNITY_THEME_SHAS = get_shas(community_theme_shas) + #APP_SHAS = get_shas(app_shas) def create_css(theme, theme_type="standard"): folder = "./css/base" with open(f"{folder}/{app}/{theme.lower()}.css", "w") as create_app: - content = f'@import url("/theme.park/css/base/{app}/{app}-base.css?sha={APP_SHAS.get(f"{app}-base.css")}");\n@import url("/theme.park/css/{"theme-options" if theme_type=="standard" else "community-theme-options"}/{theme.lower()}.css?sha={THEME_SHAS.get(f"{theme.lower()}.css") if theme_type=="standard" else COMMUNITY_THEME_SHAS.get(f"{theme.lower()}.css")}");' + content = f'@import url("/theme.park/css/base/{app}/{app}-base.css?sha={get_md5_hash(join(getcwd(),"css","base",app,f"{app}-base.css"))}");\n@import url("/theme.park/css/{"theme-options" if theme_type=="standard" else "community-theme-options"}/{theme.lower()}.css?sha={get_md5_hash(join(getcwd(),"css","theme-options",f"{theme.lower()}.css")) if theme_type=="standard" else get_md5_hash(join(getcwd(),"css","community-theme-options",f"{theme.lower()}.css"))}");' create_app.write(content) with open("themes.json") as themes: data = load(themes)