Warning: fopen(/www/sites/update.greasyfork.icu/index/store/temp/b85a982b6714e03fca1d10f749f9e028.js): failed to open stream: No space left on device in /www/sites/update.greasyfork.icu/index/scriptControl.php on line 65
// ==UserScript==
// @name CrunchyRoll - Cinema Mode
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Adds a button below the video, which when pressed, places a video in 'Cinema Mode'. Cinema Mode fills the browser window with the video. Exit Cinema Mode by pressing the button at the bottom.
// @author Anonymous
// @match https://www.crunchyroll.com/*
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/421013/CrunchyRoll%20-%20Cinema%20Mode.user.js
// @updateURL https://update.greasyfork.icu/scripts/421013/CrunchyRoll%20-%20Cinema%20Mode.meta.js
// ==/UserScript==
(function() {
'use strict';
//
// Utility Functions
//
function addGlobalStyle(css) {
let head = document.getElementsByTagName('head')[0];
if (!head) { return; }
let style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
}
function warn(msg) {
console.warn("[CINEMA TOGGLE] " + msg);
}
//
// Begin
//
// Find the video container
let domVideoContainer = document.querySelector("#showmedia_video");
if (domVideoContainer === undefined) {
warn("Unable to find video container, Cinema Mode is Disabled.");
return;
}
// Find the button container
let domButtonBox = document.querySelector("#main_content > :first-child");
if (domButtonBox === undefined) {
warn("Unable to find button container, Cinema Mode is Disabled.");
return;
}
let exitButton = document.createElement("button");
exitButton.innerHTML = "Exit Cinema Mode";
exitButton.classList.add("cinema-exit-button");
exitButton.classList.add("cinema-hide");
domVideoContainer.appendChild(exitButton);
// Function Enters Cinema Mode. The video should be full screen, and a button to exit should appear at the bottom.
function enter_cinema_mode() {
domVideoContainer.parentElement.classList.add("cinema-relative");
domVideoContainer.classList.add("cinema-fullscreen");
domVideoContainer.querySelector("#showmedia_video_box_wide").classList.add("cinema-fullscreen");
// Hide Elements that obstruct the video
document.querySelector("#showmedia").classList.add("cinema-hide");
document.querySelector("#header_beta").classList.add("cinema-hide");
document.querySelector("#footer").classList.add("cinema-hide");
// Show Exit Button
exitButton.classList.remove("cinema-hide");
}
// Function Exits Cinema Mode, which should return the site to normal operation.
function exit_cinema_mode() {
domVideoContainer.classList.remove("cinema-fullscreen");
domVideoContainer.querySelector("#showmedia_video_box_wide").classList.remove("cinema-fullscreen");
document.querySelector("#showmedia").classList.remove("cinema-hide");
document.querySelector("#header_beta").classList.remove("cinema-hide");
document.querySelector("#footer").classList.remove("cinema-hide");
exitButton.classList.add("cinema-hide");
}
exitButton.addEventListener("click", function(event) {
exit_cinema_mode();
});
// Create and add Enter Cinema Mode button to button box.
let enterButton = document.createElement("button");
enterButton.innerHTML = "Enter Cinema Mode";
enterButton.classList.add("cinema-enter-button");
enterButton.addEventListener("click", function(event) {
enter_cinema_mode();
});
domButtonBox.appendChild(enterButton);
// CSS STYLE
addGlobalStyle(".cinema-enter-button {border-radius: 0.25rem; background-color: #f47521; color: white; border: none; outline: none; padding: 0.3em; margin: 2px; font-size: 1em; margin-left: 0.5rem; line-height: 1em; cursor: pointer;}");
addGlobalStyle(".cinema-exit-button {border: none; background-color: #1a1a1a; color: grey; cursor: pointer;} .cinema-exit-button:hover {background-color: #1b1b1b; color: white;}");
addGlobalStyle(".cinema-hide {display: none;}");
addGlobalStyle(".cinema-relative {position: relative; width: 100%; height: 100%;}");
addGlobalStyle(".cinema-fullscreen {display: flex; flex-direction: column; align-items: center; position: fixed; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; background-color: #1d1d1d;}");
})();