// ==UserScript== // @name Better FMovies // @description Stay Fullscreen and Switch to Next Season on Last Episode // @version 0.1.0 // @require http://code.jquery.com/jquery-latest.js // @include /https?://(www\.)?fmoviesz\.to\/tv/ // @run-at document-idle // @namespace https://greasyfork.org/users/1235006 // @downloadURL none // ==/UserScript== function addJQuery(callback) { var script = document.createElement("script"); script.setAttribute( "src", "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" ); script.addEventListener( "load", function () { var script = document.createElement("script"); script.textContent = "window.jQ=jQuery.noConflict(true);(" + callback.toString() + ")();"; document.body.appendChild(script); }, false ); document.body.appendChild(script); } function main() { const fulLScreenBtn = document.createElement("div"); const fulLScreenBtnContent = document.createTextNode("Auto fullscreen"); fulLScreenBtn.id = "fullscreen-btn"; fulLScreenBtn.classList.add("item"); fulLScreenBtn.appendChild(fulLScreenBtnContent); document.querySelector(".c-items").appendChild(fulLScreenBtn); var fullscreen_btn = document.getElementById("fullscreen-btn"); fullscreen_btn.addEventListener("click", function () { var elem = document.getElementById("player"); var fn = elem.requestFullscreen || elem.mozRequestFullScreen || elem.webkitRequestFullscreen || elem.msRequestFullscreen; if (fn) { fn.call(elem); } }); function receiveMessage(e) { let visibleEpisodes = $("ul.episodes:visible"); let episodeLinks = Array.from(visibleEpisodes.find("a")); let lastEpisode = episodeLinks[episodeLinks.length - 1]; var r = e.message || e.data || e.originalEvent.data; var p = JSON.parse(r); if (lastEpisode.classList.contains("active")) { if (p.event === "PLAY_COMPLETED") { var currentSeason = visibleEpisodes.attr("data-season"); var nextSeason = $("ul.episodes").find(":visible").prevObject[currentSeason]; nextSeason.querySelector("a").click(); } } } window.addEventListener("message", receiveMessage); } addJQuery(main);