Files
Jellyfin-Seasonals-Plugin/Jellyfin.Plugin.Seasonals/Web/friday13.js

67 lines
2.2 KiB
JavaScript

const config = window.SeasonalsPluginConfig?.Friday13 || {};
const friday13 = config.EnableFriday13 !== undefined ? config.EnableFriday13 : true;
let msgPrinted = false;
function toggleFriday13() {
const container = document.querySelector('.friday13-container');
if (!container) return;
const videoPlayer = document.querySelector('.videoPlayerContainer');
const trailerPlayer = document.querySelector('.youtubePlayerContainer');
const isDashboard = document.body.classList.contains('dashboardDocument');
const hasUserMenu = document.querySelector('#app-user-menu');
if (videoPlayer || trailerPlayer || isDashboard || hasUserMenu) {
container.style.display = 'none';
if (!msgPrinted) {
console.log('Friday13 hidden');
msgPrinted = true;
}
} else {
container.style.display = 'block';
if (msgPrinted) {
console.log('Friday13 visible');
msgPrinted = false;
}
}
}
const observer = new MutationObserver(toggleFriday13);
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true
});
function createFriday13(container) {
// Add walking black cat
const numCats = 1;
for (let i = 0; i < numCats; i++) {
const cat = document.createElement('img');
cat.className = 'friday13-cat';
cat.src = '../Seasonals/Resources/friday_assets/black-cat.gif';
cat.style.animationDelay = `${Math.random() * 5}s`;
cat.style.bottom = `5px`; // Walk along the very bottom edge
// Either walk left to right or right to left
const dir = Math.random() > 0.5 ? 'right' : 'left';
cat.style.animationName = `cat-walk-${dir}`;
cat.style.animationDuration = `18s`;
container.appendChild(cat);
}
}
function initializeFriday13() {
if (!friday13) return;
const container = document.querySelector('.friday13-container') || document.createElement("div");
if (!document.querySelector('.friday13-container')) {
container.className = "friday13-container";
container.setAttribute("aria-hidden", "true");
document.body.appendChild(container);
}
createFriday13(container);
toggleFriday13();
}
initializeFriday13();