Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ed6509505 | ||
|
|
6427b8422a | ||
|
|
ebfbe1d563 | ||
|
|
67e5d8e4d2 | ||
|
|
d68ba7e846 | ||
|
|
0444cf333d | ||
|
|
10279e97d9 | ||
|
|
f6ccd0ea5f | ||
|
|
47827df047 | ||
|
|
7fd781c9d0 | ||
|
|
6faa8f1a4c | ||
|
|
3e05ff1dc9 | ||
|
|
fa06179cd3 |
2
.github/workflows/release_automation.yml
vendored
2
.github/workflows/release_automation.yml
vendored
@@ -99,7 +99,7 @@ jobs:
|
||||
with:
|
||||
tag_name: "v${{ env.VERSION }}"
|
||||
name: "v${{ env.VERSION }}"
|
||||
body: ${{ env.CHANGELOG }}
|
||||
# body: ${{ env.CHANGELOG }}
|
||||
files: ${{ env.ZIP_PATH }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<!-- <TreatWarningsAsErrors>false</TreatWarningsAsErrors> -->
|
||||
<Title>Jellyfin Media Bar Enhanced Plugin</Title>
|
||||
<Authors>CodeDevMLH</Authors>
|
||||
<Version>1.2.0.0</Version>
|
||||
<Version>1.2.3.1</Version>
|
||||
<RepositoryUrl>https://github.com/CodeDevMLH/jellyfin-plugin-media-bar-enhanced</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Jellyfin Slideshow by M0RPH3US v3.0.6
|
||||
* Jellyfin Slideshow by M0RPH3US v3.0.8
|
||||
* Modified by CodeDevMLH v1.1.0.0
|
||||
*
|
||||
* New features:
|
||||
@@ -41,11 +41,11 @@
|
||||
|
||||
@keyframes kenBurnsZoomIn {
|
||||
from {
|
||||
transform: scale(1);
|
||||
transform: scale3d(1, 1, 0);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: scale(1.1);
|
||||
transform: scale3d(1.1, 1.1, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,6 +128,10 @@
|
||||
transition: width 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
.layout-mobile .splashLogo {
|
||||
height: 12%;
|
||||
}
|
||||
|
||||
.backdrop.low-quality {
|
||||
filter: blur(0.5px);
|
||||
transform: scale(1.01);
|
||||
@@ -166,6 +170,12 @@
|
||||
height: 90%;
|
||||
overflow: hidden;
|
||||
margin: 0 auto;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
#slides-container[style*="display: none"],
|
||||
#slides-container[style*="visibility: hidden"] {
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
.arrow {
|
||||
@@ -780,6 +790,17 @@
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
@media (max-width: 400px) {
|
||||
.button-container {
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.play-button,
|
||||
.trailer-button {
|
||||
padding: 8px 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*Landscape Mode Phones*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Jellyfin Slideshow by M0RPH3US v3.0.6
|
||||
* Jellyfin Slideshow by M0RPH3US v3.0.8
|
||||
* Modified by CodeDevMLH v1.1.0.0
|
||||
*
|
||||
* New features:
|
||||
@@ -253,31 +253,53 @@ const initLoadingScreen = () => {
|
||||
|
||||
const checkInterval = setInterval(() => {
|
||||
const loginFormLoaded = document.querySelector(".manualLoginForm");
|
||||
const homePageLoaded =
|
||||
document.querySelector(".homeSectionsContainer") &&
|
||||
document.querySelector("#slides-container");
|
||||
const activeTab = document.querySelector(".pageTabContent.is-active");
|
||||
|
||||
if (loginFormLoaded || homePageLoaded) {
|
||||
clearInterval(progressInterval);
|
||||
clearInterval(checkInterval);
|
||||
if (loginFormLoaded) {
|
||||
finishLoading();
|
||||
return;
|
||||
}
|
||||
|
||||
progressBar.style.transition = "width 300ms ease-in-out";
|
||||
progressBar.style.width = "100%";
|
||||
unfilledBar.style.width = "0%";
|
||||
if (activeTab) {
|
||||
const tabIndex = activeTab.getAttribute("data-index");
|
||||
|
||||
progressBar.addEventListener('transitionend', () => {
|
||||
requestAnimationFrame(() => {
|
||||
const loader = document.querySelector(".bar-loading");
|
||||
if (loader) {
|
||||
loader.style.opacity = '0';
|
||||
setTimeout(() => {
|
||||
loader.remove();
|
||||
}, 300);
|
||||
}
|
||||
});
|
||||
})
|
||||
if (tabIndex === "0") {
|
||||
const homeSections = document.querySelector(".homeSectionsContainer");
|
||||
const slidesContainer = document.querySelector("#slides-container");
|
||||
|
||||
if (homeSections && slidesContainer) {
|
||||
finishLoading();
|
||||
}
|
||||
} else {
|
||||
if (
|
||||
activeTab.children.length > 0 ||
|
||||
activeTab.innerText.trim().length > 0
|
||||
) {
|
||||
finishLoading();
|
||||
}
|
||||
}
|
||||
}
|
||||
}, CONFIG.loadingCheckInterval);
|
||||
|
||||
const finishLoading = () => {
|
||||
clearInterval(progressInterval);
|
||||
clearInterval(checkInterval);
|
||||
progressBar.style.transition = "width 300ms ease-in-out";
|
||||
progressBar.style.width = "100%";
|
||||
unfilledBar.style.width = "0%";
|
||||
|
||||
progressBar.addEventListener("transitionend", () => {
|
||||
requestAnimationFrame(() => {
|
||||
const loader = document.querySelector(".bar-loading");
|
||||
if (loader) {
|
||||
loader.style.opacity = "0";
|
||||
setTimeout(() => {
|
||||
loader.remove();
|
||||
}, 300);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1253,9 +1275,12 @@ const VisibilityObserver = {
|
||||
const isVisible =
|
||||
(window.location.hash === "#/home.html" ||
|
||||
window.location.hash === "#/home") &&
|
||||
activeTab &&
|
||||
activeTab.getAttribute("data-index") === "0";
|
||||
|
||||
container.style.display = isVisible ? "block" : "none";
|
||||
container.style.visibility = isVisible ? "visible" : "hidden";
|
||||
container.style.pointerEvents = isVisible ? "auto" : "none";
|
||||
|
||||
if (isVisible) {
|
||||
if (STATE.slideshow.slideInterval && !STATE.slideshow.isPaused) {
|
||||
@@ -1274,11 +1299,11 @@ const VisibilityObserver = {
|
||||
* Initializes visibility observer
|
||||
*/
|
||||
init() {
|
||||
const observer = new MutationObserver(this.updateVisibility);
|
||||
const observer = new MutationObserver(() => this.updateVisibility());
|
||||
observer.observe(document.body, { childList: true, subtree: true });
|
||||
|
||||
document.body.addEventListener("click", this.updateVisibility);
|
||||
window.addEventListener("hashchange", this.updateVisibility);
|
||||
document.body.addEventListener("click", () => this.updateVisibility());
|
||||
window.addEventListener("hashchange", () => this.updateVisibility());
|
||||
|
||||
this.updateVisibility();
|
||||
},
|
||||
|
||||
@@ -27,7 +27,8 @@ Setzt deine Commits neu auf die Spitze eines anderen Branches. Die Commit-IDs we
|
||||
|
||||
```bash
|
||||
git checkout dev
|
||||
git rebase main
|
||||
git fetch origin
|
||||
git rebase origin/main
|
||||
```
|
||||
|
||||
| Details | |
|
||||
|
||||
@@ -2,19 +2,43 @@
|
||||
{
|
||||
"guid": "d7e11d57-819b-4bdd-a88d-53c5f5560225",
|
||||
"name": "Media Bar Enhanced",
|
||||
"description": "A jellyfin plugin to display a media bar (featured content) for jellyfin web.",
|
||||
"overview": "Media Bar for Jellyfin",
|
||||
"description": "A feature-rich fork of the original Media Bar script by MakD that brings your home screen to life.\n\n-> 100% Configurable via Web UI: Manage all features, lists, and settings effortlessly through the plugin configuration page.\n\nKey Highlights:\n- Cinematic Video Backdrops: Supports local & YouTube trailers (incl. SponsorBlock)\n- Custom Content: Curate your slideshow with specific Collections, Playlists, or seasonal events\n\nAdditional Features:\n- Full-width immersive mode\n- Smart resolution handling (up to 4K)\n- Full keyboard navigation & playback control\n- Wait-for-trailer options\n- Customizable pagination & animations\n\nIf you do not have write permissions to the web folder, please also install the file-transformation plugin.",
|
||||
"overview": "Transforms your Jellyfin home screen with an immersive, fully configurable media slideshow featuring video backdrops.",
|
||||
"owner": "CodeDevMLH",
|
||||
"category": "General",
|
||||
"imageUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/raw/branch/main/logo.png",
|
||||
"versions": [
|
||||
{
|
||||
"version": "1.2.3.1",
|
||||
"changelog": "- Fixes the issue where buttons were cut off on smaller screens such as on S24/S25.",
|
||||
"targetAbi": "10.11.0.0",
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.2.3.1/Jellyfin.Plugin.MediaBarEnhanced.zip",
|
||||
"checksum": "e73029ac767e24d36742a27678758b6f",
|
||||
"timestamp": "2026-01-28T00:17:28Z"
|
||||
},
|
||||
{
|
||||
"version": "1.2.2.0",
|
||||
"changelog": "- Fixes issues with persistent slides-container visibility",
|
||||
"targetAbi": "10.11.0.0",
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.2.2.0/Jellyfin.Plugin.MediaBarEnhanced.zip",
|
||||
"checksum": "3362f93815845c4e85b66b31bcd0f52c",
|
||||
"timestamp": "2026-01-24T22:53:55Z"
|
||||
},
|
||||
{
|
||||
"version": "1.2.1.0",
|
||||
"changelog": "- Update mediaBarEnhanced.js and mediaBarEnhanced.css with version 3.0.8 from original repo",
|
||||
"targetAbi": "10.11.0.0",
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.2.1.0/Jellyfin.Plugin.MediaBarEnhanced.zip",
|
||||
"checksum": "70defc1fb29a17ff4c9362bf7bdc53b5",
|
||||
"timestamp": "2026-01-22T23:50:56Z"
|
||||
},
|
||||
{
|
||||
"version": "1.2.0.0",
|
||||
"changelog": "- Add video quality preference setting (Auto / 1080p / Highres)\n- Set preferred video quality on YouTube player based on setting",
|
||||
"targetAbi": "10.11.0.0",
|
||||
"sourceUrl": "https://git.mahom03-spacecloud.de/CodeDevMLH/jellyfin-plugin-media-bar-enhanced/releases/download/v1.2.0.0/Jellyfin.Plugin.MediaBarEnhanced.zip",
|
||||
"checksum": "2f1628d864b35cb710431974a8b85bee",
|
||||
"timestamp": "2026-01-08T22:16:05Z"
|
||||
"checksum": "0b6379f68990026240d97fe8f77fbef1",
|
||||
"timestamp": "2026-01-08T23:30:58Z"
|
||||
},
|
||||
{
|
||||
"version": "1.1.2.0",
|
||||
|
||||
Reference in New Issue
Block a user