diff --git a/.gitignore b/.gitignore
index 75ec3f0a33..1b3e8e7b73 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-.vscode/*
\ No newline at end of file
+.vscode/*
+venv*/
\ No newline at end of file
diff --git a/css/addons/radarr/radarr-4k-favicon/android-chrome-192x192.png b/css/addons/radarr/radarr-4k-favicon/android-chrome-192x192.png
new file mode 100644
index 0000000000..bc718769d4
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/android-chrome-192x192.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/android-chrome-512x512.png b/css/addons/radarr/radarr-4k-favicon/android-chrome-512x512.png
new file mode 100644
index 0000000000..414ab5f5d4
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/android-chrome-512x512.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/apple-touch-icon.png b/css/addons/radarr/radarr-4k-favicon/apple-touch-icon.png
new file mode 100644
index 0000000000..18c77c2e1d
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/apple-touch-icon.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/browserconfig.xml b/css/addons/radarr/radarr-4k-favicon/browserconfig.xml
new file mode 100644
index 0000000000..5811d97a1e
--- /dev/null
+++ b/css/addons/radarr/radarr-4k-favicon/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/css/addons/radarr/radarr-4k-favicon/favicon-16x16.png b/css/addons/radarr/radarr-4k-favicon/favicon-16x16.png
new file mode 100644
index 0000000000..233ece50e6
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/favicon-16x16.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/favicon-32x32.png b/css/addons/radarr/radarr-4k-favicon/favicon-32x32.png
new file mode 100644
index 0000000000..f5f256d97f
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/favicon-32x32.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/favicon.ico b/css/addons/radarr/radarr-4k-favicon/favicon.ico
new file mode 100644
index 0000000000..5606461b6c
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/favicon.ico differ
diff --git a/css/addons/radarr/radarr-4k-favicon/mstile-144x144.png b/css/addons/radarr/radarr-4k-favicon/mstile-144x144.png
new file mode 100644
index 0000000000..d5e57bd400
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/mstile-144x144.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/mstile-150x150.png b/css/addons/radarr/radarr-4k-favicon/mstile-150x150.png
new file mode 100644
index 0000000000..d63f3fa69d
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/mstile-150x150.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/mstile-310x150.png b/css/addons/radarr/radarr-4k-favicon/mstile-310x150.png
new file mode 100644
index 0000000000..e62bede915
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/mstile-310x150.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/mstile-310x310.png b/css/addons/radarr/radarr-4k-favicon/mstile-310x310.png
new file mode 100644
index 0000000000..6d6d80a9e7
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/mstile-310x310.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/mstile-70x70.png b/css/addons/radarr/radarr-4k-favicon/mstile-70x70.png
new file mode 100644
index 0000000000..5d70701735
Binary files /dev/null and b/css/addons/radarr/radarr-4k-favicon/mstile-70x70.png differ
diff --git a/css/addons/radarr/radarr-4k-favicon/safari-pinned-tab.svg b/css/addons/radarr/radarr-4k-favicon/safari-pinned-tab.svg
new file mode 100644
index 0000000000..28fa53aad2
--- /dev/null
+++ b/css/addons/radarr/radarr-4k-favicon/safari-pinned-tab.svg
@@ -0,0 +1,86 @@
+
+
+
diff --git a/css/addons/radarr/radarr-4k-favicon/site.webmanifest b/css/addons/radarr/radarr-4k-favicon/site.webmanifest
new file mode 100644
index 0000000000..4271884ca0
--- /dev/null
+++ b/css/addons/radarr/radarr-4k-favicon/site.webmanifest
@@ -0,0 +1,18 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff"
+}
diff --git a/css/addons/radarr/radarr-anime-favicon/android-chrome-192x192.png b/css/addons/radarr/radarr-anime-favicon/android-chrome-192x192.png
new file mode 100644
index 0000000000..d0f11a2a83
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/android-chrome-192x192.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/android-chrome-512x512.png b/css/addons/radarr/radarr-anime-favicon/android-chrome-512x512.png
new file mode 100644
index 0000000000..e8137cd05f
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/android-chrome-512x512.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/apple-touch-icon.png b/css/addons/radarr/radarr-anime-favicon/apple-touch-icon.png
new file mode 100644
index 0000000000..c0e4ff368f
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/apple-touch-icon.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/browserconfig.xml b/css/addons/radarr/radarr-anime-favicon/browserconfig.xml
new file mode 100644
index 0000000000..5811d97a1e
--- /dev/null
+++ b/css/addons/radarr/radarr-anime-favicon/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/css/addons/radarr/radarr-anime-favicon/favicon-16x16.png b/css/addons/radarr/radarr-anime-favicon/favicon-16x16.png
new file mode 100644
index 0000000000..0a0c4d6d82
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/favicon-16x16.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/favicon-32x32.png b/css/addons/radarr/radarr-anime-favicon/favicon-32x32.png
new file mode 100644
index 0000000000..957ef20657
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/favicon-32x32.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/favicon.ico b/css/addons/radarr/radarr-anime-favicon/favicon.ico
new file mode 100644
index 0000000000..e147a59daf
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/favicon.ico differ
diff --git a/css/addons/radarr/radarr-anime-favicon/mstile-144x144.png b/css/addons/radarr/radarr-anime-favicon/mstile-144x144.png
new file mode 100644
index 0000000000..4e7d29b78b
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/mstile-144x144.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/mstile-150x150.png b/css/addons/radarr/radarr-anime-favicon/mstile-150x150.png
new file mode 100644
index 0000000000..61486140b9
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/mstile-150x150.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/mstile-310x150.png b/css/addons/radarr/radarr-anime-favicon/mstile-310x150.png
new file mode 100644
index 0000000000..84f2d8df28
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/mstile-310x150.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/mstile-310x310.png b/css/addons/radarr/radarr-anime-favicon/mstile-310x310.png
new file mode 100644
index 0000000000..2a95d0c1b6
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/mstile-310x310.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/mstile-70x70.png b/css/addons/radarr/radarr-anime-favicon/mstile-70x70.png
new file mode 100644
index 0000000000..2ad426ac90
Binary files /dev/null and b/css/addons/radarr/radarr-anime-favicon/mstile-70x70.png differ
diff --git a/css/addons/radarr/radarr-anime-favicon/safari-pinned-tab.svg b/css/addons/radarr/radarr-anime-favicon/safari-pinned-tab.svg
new file mode 100644
index 0000000000..54bb9f87c9
--- /dev/null
+++ b/css/addons/radarr/radarr-anime-favicon/safari-pinned-tab.svg
@@ -0,0 +1,126 @@
+
+
+
diff --git a/css/addons/radarr/radarr-anime-favicon/site.webmanifest b/css/addons/radarr/radarr-anime-favicon/site.webmanifest
new file mode 100644
index 0000000000..4271884ca0
--- /dev/null
+++ b/css/addons/radarr/radarr-anime-favicon/site.webmanifest
@@ -0,0 +1,18 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff"
+}
diff --git a/css/addons/readarr/readarr-alt-favicon/android-chrome-192x192.png b/css/addons/readarr/readarr-alt-favicon/android-chrome-192x192.png
new file mode 100644
index 0000000000..baebe5b709
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/android-chrome-192x192.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/android-chrome-512x512.png b/css/addons/readarr/readarr-alt-favicon/android-chrome-512x512.png
new file mode 100644
index 0000000000..ff6b443c7a
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/android-chrome-512x512.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/apple-touch-icon.png b/css/addons/readarr/readarr-alt-favicon/apple-touch-icon.png
new file mode 100644
index 0000000000..141b558de6
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/apple-touch-icon.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/browserconfig.xml b/css/addons/readarr/readarr-alt-favicon/browserconfig.xml
new file mode 100644
index 0000000000..5811d97a1e
--- /dev/null
+++ b/css/addons/readarr/readarr-alt-favicon/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/css/addons/readarr/readarr-alt-favicon/favicon-16x16.png b/css/addons/readarr/readarr-alt-favicon/favicon-16x16.png
new file mode 100644
index 0000000000..c06a5097da
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/favicon-16x16.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/favicon-32x32.png b/css/addons/readarr/readarr-alt-favicon/favicon-32x32.png
new file mode 100644
index 0000000000..e81c70a289
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/favicon-32x32.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/favicon.ico b/css/addons/readarr/readarr-alt-favicon/favicon.ico
new file mode 100644
index 0000000000..5d33da7106
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/favicon.ico differ
diff --git a/css/addons/readarr/readarr-alt-favicon/mstile-144x144.png b/css/addons/readarr/readarr-alt-favicon/mstile-144x144.png
new file mode 100644
index 0000000000..ce659826dc
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/mstile-144x144.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/mstile-150x150.png b/css/addons/readarr/readarr-alt-favicon/mstile-150x150.png
new file mode 100644
index 0000000000..cf012046b9
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/mstile-150x150.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/mstile-310x150.png b/css/addons/readarr/readarr-alt-favicon/mstile-310x150.png
new file mode 100644
index 0000000000..a49a11c4bb
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/mstile-310x150.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/mstile-310x310.png b/css/addons/readarr/readarr-alt-favicon/mstile-310x310.png
new file mode 100644
index 0000000000..d5f984fdb5
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/mstile-310x310.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/mstile-70x70.png b/css/addons/readarr/readarr-alt-favicon/mstile-70x70.png
new file mode 100644
index 0000000000..7115f92342
Binary files /dev/null and b/css/addons/readarr/readarr-alt-favicon/mstile-70x70.png differ
diff --git a/css/addons/readarr/readarr-alt-favicon/safari-pinned-tab.svg b/css/addons/readarr/readarr-alt-favicon/safari-pinned-tab.svg
new file mode 100644
index 0000000000..b3a9b9ac2b
--- /dev/null
+++ b/css/addons/readarr/readarr-alt-favicon/safari-pinned-tab.svg
@@ -0,0 +1,72 @@
+
+
+
diff --git a/css/addons/readarr/readarr-alt-favicon/site.webmanifest b/css/addons/readarr/readarr-alt-favicon/site.webmanifest
new file mode 100644
index 0000000000..4271884ca0
--- /dev/null
+++ b/css/addons/readarr/readarr-alt-favicon/site.webmanifest
@@ -0,0 +1,18 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff"
+}
diff --git a/css/addons/sonarr/sonarr-4k-favicon/android-chrome-192x192.png b/css/addons/sonarr/sonarr-4k-favicon/android-chrome-192x192.png
new file mode 100644
index 0000000000..ad91ac9aa5
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/android-chrome-192x192.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/android-chrome-512x512.png b/css/addons/sonarr/sonarr-4k-favicon/android-chrome-512x512.png
new file mode 100644
index 0000000000..39dccbc659
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/android-chrome-512x512.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/apple-touch-icon.png b/css/addons/sonarr/sonarr-4k-favicon/apple-touch-icon.png
new file mode 100644
index 0000000000..aa43c23d5b
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/apple-touch-icon.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/browserconfig.xml b/css/addons/sonarr/sonarr-4k-favicon/browserconfig.xml
new file mode 100644
index 0000000000..5811d97a1e
--- /dev/null
+++ b/css/addons/sonarr/sonarr-4k-favicon/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/css/addons/sonarr/sonarr-4k-favicon/favicon-16x16.png b/css/addons/sonarr/sonarr-4k-favicon/favicon-16x16.png
new file mode 100644
index 0000000000..afeff17ef3
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/favicon-16x16.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/favicon-32x32.png b/css/addons/sonarr/sonarr-4k-favicon/favicon-32x32.png
new file mode 100644
index 0000000000..0a907aa461
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/favicon-32x32.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/favicon.ico b/css/addons/sonarr/sonarr-4k-favicon/favicon.ico
new file mode 100644
index 0000000000..2146fd9e85
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/favicon.ico differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/mstile-144x144.png b/css/addons/sonarr/sonarr-4k-favicon/mstile-144x144.png
new file mode 100644
index 0000000000..6b556def50
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/mstile-144x144.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/mstile-150x150.png b/css/addons/sonarr/sonarr-4k-favicon/mstile-150x150.png
new file mode 100644
index 0000000000..ae1cb36801
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/mstile-150x150.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/mstile-310x150.png b/css/addons/sonarr/sonarr-4k-favicon/mstile-310x150.png
new file mode 100644
index 0000000000..95e69b49c0
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/mstile-310x150.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/mstile-310x310.png b/css/addons/sonarr/sonarr-4k-favicon/mstile-310x310.png
new file mode 100644
index 0000000000..26cee9c008
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/mstile-310x310.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/mstile-70x70.png b/css/addons/sonarr/sonarr-4k-favicon/mstile-70x70.png
new file mode 100644
index 0000000000..169003e5d8
Binary files /dev/null and b/css/addons/sonarr/sonarr-4k-favicon/mstile-70x70.png differ
diff --git a/css/addons/sonarr/sonarr-4k-favicon/safari-pinned-tab.svg b/css/addons/sonarr/sonarr-4k-favicon/safari-pinned-tab.svg
new file mode 100644
index 0000000000..2ab11e0b6a
--- /dev/null
+++ b/css/addons/sonarr/sonarr-4k-favicon/safari-pinned-tab.svg
@@ -0,0 +1,76 @@
+
+
+
diff --git a/css/addons/sonarr/sonarr-4k-favicon/site.webmanifest b/css/addons/sonarr/sonarr-4k-favicon/site.webmanifest
new file mode 100644
index 0000000000..4271884ca0
--- /dev/null
+++ b/css/addons/sonarr/sonarr-4k-favicon/site.webmanifest
@@ -0,0 +1,18 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff"
+}
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/android-chrome-192x192.png b/css/addons/sonarr/sonarr-anime-blue-favicon/android-chrome-192x192.png
new file mode 100644
index 0000000000..034b9fe092
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/android-chrome-192x192.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/android-chrome-512x512.png b/css/addons/sonarr/sonarr-anime-blue-favicon/android-chrome-512x512.png
new file mode 100644
index 0000000000..67c55f1cf8
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/android-chrome-512x512.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/apple-touch-icon.png b/css/addons/sonarr/sonarr-anime-blue-favicon/apple-touch-icon.png
new file mode 100644
index 0000000000..e77a0e0d1d
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/apple-touch-icon.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/browserconfig.xml b/css/addons/sonarr/sonarr-anime-blue-favicon/browserconfig.xml
new file mode 100644
index 0000000000..5811d97a1e
--- /dev/null
+++ b/css/addons/sonarr/sonarr-anime-blue-favicon/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/favicon-16x16.png b/css/addons/sonarr/sonarr-anime-blue-favicon/favicon-16x16.png
new file mode 100644
index 0000000000..22bea2fb70
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/favicon-16x16.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/favicon-32x32.png b/css/addons/sonarr/sonarr-anime-blue-favicon/favicon-32x32.png
new file mode 100644
index 0000000000..a2cd786a7d
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/favicon-32x32.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/favicon.ico b/css/addons/sonarr/sonarr-anime-blue-favicon/favicon.ico
new file mode 100644
index 0000000000..f1ed35eb0d
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/favicon.ico differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-144x144.png b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-144x144.png
new file mode 100644
index 0000000000..b61b10138d
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-144x144.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-150x150.png b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-150x150.png
new file mode 100644
index 0000000000..73eca21fcd
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-150x150.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-310x150.png b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-310x150.png
new file mode 100644
index 0000000000..19e7ddf2eb
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-310x150.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-310x310.png b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-310x310.png
new file mode 100644
index 0000000000..cda7e03caf
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-310x310.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-70x70.png b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-70x70.png
new file mode 100644
index 0000000000..29ec9f29af
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-blue-favicon/mstile-70x70.png differ
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/safari-pinned-tab.svg b/css/addons/sonarr/sonarr-anime-blue-favicon/safari-pinned-tab.svg
new file mode 100644
index 0000000000..1f8b344efe
--- /dev/null
+++ b/css/addons/sonarr/sonarr-anime-blue-favicon/safari-pinned-tab.svg
@@ -0,0 +1,135 @@
+
+
+
diff --git a/css/addons/sonarr/sonarr-anime-blue-favicon/site.webmanifest b/css/addons/sonarr/sonarr-anime-blue-favicon/site.webmanifest
new file mode 100644
index 0000000000..4271884ca0
--- /dev/null
+++ b/css/addons/sonarr/sonarr-anime-blue-favicon/site.webmanifest
@@ -0,0 +1,18 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff"
+}
diff --git a/css/addons/sonarr/sonarr-anime-favicon/android-chrome-192x192.png b/css/addons/sonarr/sonarr-anime-favicon/android-chrome-192x192.png
new file mode 100644
index 0000000000..1a9509026e
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/android-chrome-192x192.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/android-chrome-512x512.png b/css/addons/sonarr/sonarr-anime-favicon/android-chrome-512x512.png
new file mode 100644
index 0000000000..cb3dc344ce
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/android-chrome-512x512.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/apple-touch-icon.png b/css/addons/sonarr/sonarr-anime-favicon/apple-touch-icon.png
new file mode 100644
index 0000000000..2f00d0cc09
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/apple-touch-icon.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/browserconfig.xml b/css/addons/sonarr/sonarr-anime-favicon/browserconfig.xml
new file mode 100644
index 0000000000..5811d97a1e
--- /dev/null
+++ b/css/addons/sonarr/sonarr-anime-favicon/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #da532c
+
+
+
diff --git a/css/addons/sonarr/sonarr-anime-favicon/favicon-16x16.png b/css/addons/sonarr/sonarr-anime-favicon/favicon-16x16.png
new file mode 100644
index 0000000000..03d4e422a8
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/favicon-16x16.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/favicon-32x32.png b/css/addons/sonarr/sonarr-anime-favicon/favicon-32x32.png
new file mode 100644
index 0000000000..852344a71f
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/favicon-32x32.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/favicon.ico b/css/addons/sonarr/sonarr-anime-favicon/favicon.ico
new file mode 100644
index 0000000000..e2c9ef9083
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/favicon.ico differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/mstile-144x144.png b/css/addons/sonarr/sonarr-anime-favicon/mstile-144x144.png
new file mode 100644
index 0000000000..b6773e8973
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/mstile-144x144.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/mstile-150x150.png b/css/addons/sonarr/sonarr-anime-favicon/mstile-150x150.png
new file mode 100644
index 0000000000..7a2a2d205f
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/mstile-150x150.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/mstile-310x150.png b/css/addons/sonarr/sonarr-anime-favicon/mstile-310x150.png
new file mode 100644
index 0000000000..1e6b4e51f4
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/mstile-310x150.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/mstile-310x310.png b/css/addons/sonarr/sonarr-anime-favicon/mstile-310x310.png
new file mode 100644
index 0000000000..6878ed360d
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/mstile-310x310.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/mstile-70x70.png b/css/addons/sonarr/sonarr-anime-favicon/mstile-70x70.png
new file mode 100644
index 0000000000..d33cd540aa
Binary files /dev/null and b/css/addons/sonarr/sonarr-anime-favicon/mstile-70x70.png differ
diff --git a/css/addons/sonarr/sonarr-anime-favicon/safari-pinned-tab.svg b/css/addons/sonarr/sonarr-anime-favicon/safari-pinned-tab.svg
new file mode 100644
index 0000000000..b7b03f3052
--- /dev/null
+++ b/css/addons/sonarr/sonarr-anime-favicon/safari-pinned-tab.svg
@@ -0,0 +1,135 @@
+
+
+
diff --git a/css/addons/sonarr/sonarr-anime-favicon/site.webmanifest b/css/addons/sonarr/sonarr-anime-favicon/site.webmanifest
new file mode 100644
index 0000000000..4271884ca0
--- /dev/null
+++ b/css/addons/sonarr/sonarr-anime-favicon/site.webmanifest
@@ -0,0 +1,18 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff"
+}
diff --git a/css/base/sonarr/sonarr-base.css b/css/base/sonarr/sonarr-base.css
index c7e5acbac3..2831be4783 100644
--- a/css/base/sonarr/sonarr-base.css
+++ b/css/base/sonarr/sonarr-base.css
@@ -71,6 +71,11 @@
background-color: rgb(var(--accent-color)) !important;
}
+/* SERIES Table View */
+[class*="SeriesIndexTable-row-"]:hover {
+ background-color: var(--transparency-light-10);
+}
+
/* OVERVIEW PAGE */
[class*="SeriesIndexOverviews-container-"],
[class*="SeriesIndexOverviews-container-"]:hover {
diff --git a/css/defaults/servarr-base.css b/css/defaults/servarr-base.css
index cf4a429a26..345a6f9f4e 100644
--- a/css/defaults/servarr-base.css
+++ b/css/defaults/servarr-base.css
@@ -756,6 +756,13 @@ a:hover {
color: #ff902b;
}
+/* SETTINGS - Tags */
+
+[class*="AutoTaggings-center-"], [class*="EditAutoTaggingModalContent-center-"] {
+ border: 1px solid transparent;
+ background-color: transparent;
+}
+
/* MEDIA MANAGEMENT - FILE NAME TOKENS */
[class*="NamingOption-small-"] {
border: 1px solid transparent;
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 0ea86540c9..a45b57ff93 100755
--- a/docker-mods/radarr/root/etc/cont-init.d/98-themepark
+++ b/docker-mods/radarr/root/etc/cont-init.d/98-themepark
@@ -14,10 +14,13 @@ echo -e "Variables set:\\n\
APP_FILEPATH='/app/radarr/bin/UI/index.html'
LOGIN_FILEPATH='/app/radarr/bin/UI/login.html'
+APP_ICON_FILEPATH='/app/radarr/bin/UI/Content/Images/Icons'
+
if [ "${TP_HOTIO}" = true ]; then
echo 'Changing to Hotio file path!'
APP_FILEPATH='/app/bin/UI/index.html'
LOGIN_FILEPATH='/app/bin/UI/login.html'
+ APP_ICON_FILEPATH='/app/bin/UI/Content/Images/Icons'
fi
# Set default
@@ -47,6 +50,18 @@ if [[ -z ${TP_THEME} ]]; then
TP_THEME='organizr'
fi
+# Function to download files for a given addon
+download_favicon_files() {
+ local addon=$1
+ local urls=$(curl -s "${TP_SCHEME}://${TP_DOMAIN}/themes.json" | jq -r ".addons.radarr[\"$addon\"].files[]?")
+ for url in $urls; do
+ # Remove the query parameters from the URL
+ clean_url="${url%%\?*}"
+ wget -O "${APP_ICON_FILEPATH}/$(basename "${clean_url}")" "${clean_url}"
+ printf 'Downloaded favicon: %s\n' "${clean_url}"
+ done
+}
+
# Adding stylesheets
if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
echo '---------------------------'
@@ -61,6 +76,11 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
if [[ -n ${TP_ADDON} ]]; then
for addon in $(echo "$TP_ADDON" | tr "|" " "); do
sheets="${sheets} "
+ # If the addon variable has "favicon" in it, download all the favicon files from the themes.json file.
+ if [[ ${addon} == *"favicon"* ]]; then
+ echo 'Downloading favicon files...'
+ download_favicon_files "$addon"
+ fi
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 bacd704f89..6a8ba8c7bf 100755
--- 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
@@ -14,10 +14,13 @@ echo -e "Variables set:\\n\
APP_FILEPATH='/app/radarr/bin/UI/index.html'
LOGIN_FILEPATH='/app/radarr/bin/UI/login.html'
+APP_ICON_FILEPATH='/app/radarr/bin/UI/Content/Images/Icons'
+
if [ "${TP_HOTIO}" = true ]; then
echo 'Changing to Hotio file path!'
APP_FILEPATH='/app/bin/UI/index.html'
LOGIN_FILEPATH='/app/bin/UI/login.html'
+ APP_ICON_FILEPATH='/app/bin/UI/Content/Images/Icons'
fi
# Set default
@@ -47,6 +50,18 @@ if [[ -z ${TP_THEME} ]]; then
TP_THEME='organizr'
fi
+# Function to download files for a given addon
+download_favicon_files() {
+ local addon=$1
+ local urls=$(curl -s "${TP_SCHEME}://${TP_DOMAIN}/themes.json" | jq -r ".addons.radarr[\"$addon\"].files[]?")
+ for url in $urls; do
+ # Remove the query parameters from the URL
+ clean_url="${url%%\?*}"
+ wget -O "${APP_ICON_FILEPATH}/$(basename "${clean_url}")" "${clean_url}"
+ printf 'Downloaded favicon: %s\n' "${clean_url}"
+ done
+}
+
# Adding stylesheets
if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
echo '---------------------------'
@@ -61,6 +76,11 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
if [[ -n ${TP_ADDON} ]]; then
for addon in $(echo "$TP_ADDON" | tr "|" " "); do
sheets="${sheets} "
+ # If the addon variable has "favicon" in it, download all the favicon files from the themes.json file.
+ if [[ ${addon} == *"favicon"* ]]; then
+ echo 'Downloading favicon files...'
+ download_favicon_files "$addon"
+ fi
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 1036e99d0e..c280359061 100755
--- a/docker-mods/readarr/root/etc/cont-init.d/98-themepark
+++ b/docker-mods/readarr/root/etc/cont-init.d/98-themepark
@@ -14,10 +14,13 @@ echo -e "Variables set:\\n\
APP_FILEPATH='/app/readarr/bin/UI/index.html'
LOGIN_FILEPATH='/app/readarr/bin/UI/login.html'
+APP_ICON_FILEPATH='/app/readarr/bin/UI/Content/Images/Icons'
+
if [ "${TP_HOTIO}" = true ]; then
echo 'Changing to Hotio file path!'
APP_FILEPATH='/app/bin/UI/index.html'
LOGIN_FILEPATH='/app/bin/UI/login.html'
+ APP_ICON_FILEPATH='/app/bin/UI/Content/Images/Icons'
fi
# Set default
@@ -47,6 +50,18 @@ if [[ -z ${TP_THEME} ]]; then
TP_THEME='organizr'
fi
+# Function to download files for a given addon
+download_favicon_files() {
+ local addon=$1
+ local urls=$(curl -s "${TP_SCHEME}://${TP_DOMAIN}/themes.json" | jq -r ".addons.readarr[\"$addon\"].files[]?")
+ for url in $urls; do
+ # Remove the query parameters from the URL
+ clean_url="${url%%\?*}"
+ wget -O "${APP_ICON_FILEPATH}/$(basename "${clean_url}")" "${clean_url}"
+ printf 'Downloaded favicon: %s\n' "${clean_url}"
+ done
+}
+
# Adding stylesheets
if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
echo '---------------------------'
@@ -61,6 +76,11 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
if [[ -n ${TP_ADDON} ]]; then
for addon in $(echo "$TP_ADDON" | tr "|" " "); do
sheets="${sheets} "
+ # If the addon variable has "favicon" in it, download all the favicon files from the themes.json file.
+ if [[ ${addon} == *"favicon"* ]]; then
+ echo 'Downloading favicon files...'
+ download_favicon_files "$addon"
+ fi
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 10bc8c5202..12ac47f9e5 100755
--- 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
@@ -14,10 +14,13 @@ echo -e "Variables set:\\n\
APP_FILEPATH='/app/readarr/bin/UI/index.html'
LOGIN_FILEPATH='/app/readarr/bin/UI/login.html'
+APP_ICON_FILEPATH='/app/readarr/bin/UI/Content/Images/Icons'
+
if [ "${TP_HOTIO}" = true ]; then
echo 'Changing to Hotio file path!'
APP_FILEPATH='/app/bin/UI/index.html'
LOGIN_FILEPATH='/app/bin/UI/login.html'
+ APP_ICON_FILEPATH='/app/bin/UI/Content/Images/Icons'
fi
# Set default
@@ -47,6 +50,18 @@ if [[ -z ${TP_THEME} ]]; then
TP_THEME='organizr'
fi
+# Function to download files for a given addon
+download_favicon_files() {
+ local addon=$1
+ local urls=$(curl -s "${TP_SCHEME}://${TP_DOMAIN}/themes.json" | jq -r ".addons.readarr[\"$addon\"].files[]?")
+ for url in $urls; do
+ # Remove the query parameters from the URL
+ clean_url="${url%%\?*}"
+ wget -O "${APP_ICON_FILEPATH}/$(basename "${clean_url}")" "${clean_url}"
+ printf 'Downloaded favicon: %s\n' "${clean_url}"
+ done
+}
+
# Adding stylesheets
if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
echo '---------------------------'
@@ -61,6 +76,11 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
if [[ -n ${TP_ADDON} ]]; then
for addon in $(echo "$TP_ADDON" | tr "|" " "); do
sheets="${sheets} "
+ # If the addon variable has "favicon" in it, download all the favicon files from the themes.json file.
+ if [[ ${addon} == *"favicon"* ]]; then
+ echo 'Downloading favicon files...'
+ download_favicon_files "$addon"
+ fi
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 4f107e1a00..7d5633d919 100755
--- a/docker-mods/sonarr/root/etc/cont-init.d/98-themepark
+++ b/docker-mods/sonarr/root/etc/cont-init.d/98-themepark
@@ -14,10 +14,13 @@ echo -e "Variables set:\\n\
APP_FILEPATH='/app/sonarr/bin/UI/index.html'
LOGIN_FILEPATH='/app/sonarr/bin/UI/login.html'
+APP_ICON_FILEPATH='/app/sonarr/bin/UI/Content/Images/Icons'
+
if [ "${TP_HOTIO}" = true ]; then
echo 'Changing to Hotio file path!'
APP_FILEPATH='/app/bin/UI/index.html'
LOGIN_FILEPATH='/app/bin/UI/login.html'
+ APP_ICON_FILEPATH='/app/bin/UI/Content/Images/Icons'
fi
# Set default
@@ -47,6 +50,18 @@ if [[ -z ${TP_THEME} ]]; then
TP_THEME='organizr'
fi
+# Function to download files for a given addon
+download_favicon_files() {
+ local addon=$1
+ local urls=$(curl -s "${TP_SCHEME}://${TP_DOMAIN}/themes.json" | jq -r ".addons.sonarr[\"$addon\"].files[]?")
+ for url in $urls; do
+ # Remove the query parameters from the URL
+ clean_url="${url%%\?*}"
+ wget -O "${APP_ICON_FILEPATH}/$(basename "${clean_url}")" "${clean_url}"
+ printf 'Downloaded favicon: %s\n' "${clean_url}"
+ done
+}
+
# Adding stylesheets
if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
echo '---------------------------'
@@ -61,6 +76,11 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
if [[ -n ${TP_ADDON} ]]; then
for addon in $(echo "$TP_ADDON" | tr "|" " "); do
sheets="${sheets} "
+ # If the addon variable has "favicon" in it, download all the favicon files from the themes.json file.
+ if [[ ${addon} == *"favicon"* ]]; then
+ echo 'Downloading favicon files...'
+ download_favicon_files "$addon"
+ fi
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 b7b0b13547..6998b96660 100755
--- 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
@@ -14,10 +14,13 @@ echo -e "Variables set:\\n\
APP_FILEPATH='/app/sonarr/bin/UI/index.html'
LOGIN_FILEPATH='/app/sonarr/bin/UI/login.html'
+APP_ICON_FILEPATH='/app/sonarr/bin/UI/Content/Images/Icons'
+
if [ "${TP_HOTIO}" = true ]; then
echo 'Changing to Hotio file path!'
APP_FILEPATH='/app/bin/UI/index.html'
LOGIN_FILEPATH='/app/bin/UI/login.html'
+ APP_ICON_FILEPATH='/app/bin/UI/Content/Images/Icons'
fi
# Set default
@@ -47,6 +50,18 @@ if [[ -z ${TP_THEME} ]]; then
TP_THEME='organizr'
fi
+# Function to download files for a given addon
+download_favicon_files() {
+ local addon=$1
+ local urls=$(curl -s "${TP_SCHEME}://${TP_DOMAIN}/themes.json" | jq -r ".addons.sonarr[\"$addon\"].files[]?")
+ for url in $urls; do
+ # Remove the query parameters from the URL
+ clean_url="${url%%\?*}"
+ wget -O "${APP_ICON_FILEPATH}/$(basename "${clean_url}")" "${clean_url}"
+ printf 'Downloaded favicon: %s\n' "${clean_url}"
+ done
+}
+
# Adding stylesheets
if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
echo '---------------------------'
@@ -61,6 +76,11 @@ if ! grep -q "${TP_DOMAIN}/css/base" "${APP_FILEPATH}"; then
if [[ -n ${TP_ADDON} ]]; then
for addon in $(echo "$TP_ADDON" | tr "|" " "); do
sheets="${sheets} "
+ # If the addon variable has "favicon" in it, download all the favicon files from the themes.json file.
+ if [[ ${addon} == *"favicon"* ]]; then
+ echo 'Downloading favicon files...'
+ download_favicon_files "$addon"
+ fi
printf 'Added custom addon: %s\n\n' "${addon}"
done
fi
diff --git a/themes.py b/themes.py
index 40f7b20373..7094aebab0 100644
--- a/themes.py
+++ b/themes.py
@@ -51,6 +51,11 @@ def create_addons_json() -> str:
}
)
else:
+ if len([f for f in files if not f.endswith('.css')]) >= 1:
+ ADDONS["addons"][app][addon].update({
+ "files": [f"{scheme}://{DOMAIN}/css/addons/{app}/{addon}/{file}?sha={get_md5_hash(join(getcwd(),'css','addons',app,addon,file))}" for file in files]
+ }
+ )
ADDONS["addons"][app].update({
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"
}
@@ -63,8 +68,9 @@ def create_addons_json() -> str:
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={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"]
- }
+ "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"],
+ "files": [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"]
+ },
}
)
return dumps(ADDONS, sort_keys=True)
@@ -153,7 +159,6 @@ def create_css(theme, theme_type="standard"):
for theme in community_themes:
create_css(theme,theme_type="community")
-env_domain = env.get('TP_DOMAIN')
scheme = env.get('TP_SCHEME','https') if env.get('TP_SCHEME') else 'https'
if __name__ == "__main__":
@@ -161,13 +166,14 @@ def create_css(theme, theme_type="standard"):
themes = [name for name in listdir('./css/theme-options') if isfile(join('./css/theme-options', name))]
docker_mods = [name for name in listdir('./docker-mods')] if isdir('./docker-mods') else []
community_themes = [name for name in listdir('./css/community-theme-options') if isfile(join('./css/community-theme-options', name))]
- develop = True if isdir(".git") and subprocess.check_output(["git", "symbolic-ref", "--short", "HEAD"]).decode('ascii').strip() == "develop" else False
- if env_domain:
- DOMAIN = env_domain
+ branch: str | None = subprocess.check_output(["git", "symbolic-ref", "--short", "HEAD"]).decode('ascii').strip() if isdir(".git") else None
+
+ if env.get('TP_DOMAIN'):
+ DOMAIN = env.get('TP_DOMAIN')
else:
with open("CNAME", "rt", closefd=True) as cname:
CNAME = cname.readline()
- DOMAIN = CNAME if not develop else f"develop.{CNAME}"
+ DOMAIN = f"{branch}.{CNAME}" if branch else CNAME
apps = loads(create_json(app_folders=app_folders, themes=themes, community_themes=community_themes, docker_mods=docker_mods))
with open("themes.json", "w") as outfile:
dump(apps, outfile, indent=2, sort_keys=True)