Files
Jellyfin-Mods-Automated-Script/config.yaml
2025-12-19 15:28:30 +01:00

76 lines
4.3 KiB
YAML

# Zielverzeichnis für Operationen
destination_directory: './web'
# Kopierregeln
copy_rules:
- sources:
- source: './img/icon-transparent.png'
target: './icon-transparent*.png'
- source: './img/banner-light.png'
target: './banner-light*.png'
- source: './img/banner-dark.png'
target: './banner-dark*.png'
- source: './img/favicon_32x32.ico'
target: './favicon*.ico'
- source: './img/favicon.ico'
target: './favicon*.ico'
- source: './img/touchicon_180x180.png'
target: './touchicon*.png'
- source: './img/notificationicon.png'
target: './notificationicon*.png'
- source: './img/favicons_dir'
target: './favicons'
mode: 'replace' # Überschreibt vorhandene Dateien/Ordner
- sources:
- './featured'
- './pictures'
- source: './img/logo.png'
target: './assets/img/logo.png'
- source: './img/banner-dark.png'
target: './assets/img/logo-banner.png'
mode: 'copy' # Kopiert Dateien/Ordner
# Modifikationsregeln
modification_rules:
# Login logo
- file_pattern: 'session-login-index-html\.[0-9a-z]+\.chunk\.js$'
insert_rules:
- after_text: '<div class="padded-left padded-right padded-bottom-page margin-auto-y">'
insert_text: '<img id="login-logo" src="/web/assets/img/logo-banner.png" width=350px style="padding: 0px;display:block; margin-left: auto; margin-right: auto;">'
# Jellyseer Tab Button
- file_pattern: 'index.html'
insert_rules:
# requests tab
- before_text: 're:<link href="main\.jellyfin\.[0-9a-z]+\.css[^.]+" rel="stylesheet">'
insert_text: >
<script>const createRequestTab = () => {const title = document.createElement("div");title.classList.add("emby-button-foreground");title.innerText = "Anfragen";const button = document.createElement("button");button.type = "button";button.is = "empty-button";button.classList.add("emby-tab-button", "emby-button", "lastFocused");button.setAttribute("data-index", "2");button.setAttribute("id", "requestTab");button.appendChild(title);(function e() {const tabb = document.querySelector(".emby-tabs-slider");tabb ? !document.querySelector("#requestTab") && tabb.appendChild(button) : setTimeout(e, 500)})();}</script>
# Limits and defaults
- file_pattern: '^main\.jellyfin\.bundle\.js$'
replace_rules:
# Set limit on how many days items should be in the next up section (last number)
- old_text: 'this.set("maxDaysForNextUp",e.toString(),!1);var t=parseInt(this.get("maxDaysForNextUp",!1),10);return 0===t?0:t||365}}'
new_text: 'this.set("maxDaysForNextUp",e.toString(),!1);var t=parseInt(this.get("maxDaysForNextUp",!1),10);return 0===t?0:t||28}}'
# Default user page size (last number), 99 fits perfect on most desktops
- old_text: 'this.get("libraryPageSize",!1),10);return 0===t?0:t||100}'
new_text: 'this.get("libraryPageSize",!1),10);return 0===t?0:t||99}'
# Jellyseer I-Frame and featured iframe
- file_pattern: 'home-html\.[0-9a-z]+\.chunk\.js$'
insert_rules:
# featured iframe and requests iframe style
- after_text: 'data-backdroptype="movie,series,book">'
insert_text: >
<style> .featurediframe {width: 95vw; height: 24em; display: block; border: 0; margin: -1em auto 0;} @media (min-width: 2100px) {.featurediframe {height: 33em;}} @media (max-width: 1599px) {.featurediframe {margin-top: 1.2em;}} @media (max-width: 800px) {.featurediframe {margin-top: 0.8em; height: 25em;}} </style> <iframe class="featurediframe" src="/web/featured/spotlight.html"></iframe>
<style>:root { --save-gut: max(env(safe-area-inset-left), .3%) } .requestIframe { margin: 0 .4em; padding: 0 var(--save-gut); width: calc(100% - (.4em * 2) - (var(--save-gut) * 2)); height: 90vh; border: none; position: absolute; top: 5.3em } @media (max-width: 1599px) { .requestIframe { height: 83vh; top: 8.2em; } }</style><script>setTimeout(() => { createRequestTab() }, 500)</script>
# request tab on main page
- after_text: 'id="favoritesTab" data-index="1"> <div class="sections"></div> </div>'
insert_text: '<div class="tabContent pageTabContent" id="requestsTab" data-index="2"> <div class="sections"><iframe class="requestIframe" src="https://jellyseerr.mahom03-spacecloud.de"></iframe></div> </div>'