您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Big video player for Iwara. Fills the screen. Adds button toggles for video descriptions and comments. Removes Liked By Users, Footer, and Announcement. Moves More From User/More Like This to bottom of page.
// ==UserScript== // @name Iwara: Theater Mode, Video Description & Comment Toggles // @namespace https://www.iwara.tv/ // @version 2.1 // @description Big video player for Iwara. Fills the screen. Adds button toggles for video descriptions and comments. Removes Liked By Users, Footer, and Announcement. Moves More From User/More Like This to bottom of page. // @author sonikkuso // @match *://iwara.tv/* // @match *://www.iwara.tv/* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; function addToggleButton() { const container = document.querySelector('.page-video .page-video__details'); if (!container || container.dataset.toggleReady === 'true') return; container.dataset.toggleReady = 'true'; const titleBlock = container.querySelector('.text'); if (!titleBlock) return; // Hide all other elements except the title [...container.children].forEach(child => { if (child !== titleBlock) { child.style.display = 'none'; } }); // Create the toggle button const button = document.createElement('button'); button.textContent = 'Show Description'; button.style.marginLeft = '15px'; button.style.cursor = 'pointer'; button.setAttribute("class", "button likeButton button--primary button--solid"); button.style.cssText += "vertical-align: middle; position: relative; bottom: 1px" let isVisible = false; button.addEventListener('click', () => { isVisible = !isVisible; button.textContent = isVisible ? 'Hide Description' : 'Show Description'; [...container.children].forEach(child => { if (child !== titleBlock) { child.style.display = isVisible ? '' : 'none'; } }); }); titleBlock.appendChild(button); } // Initial run addToggleButton(); // Observe for dynamic navigation const observer = new MutationObserver(addToggleButton); observer.observe(document.body, { childList: true, subtree: true }); function addToggleButton2() { const comments = document.querySelector('.comments'); if (!comments || comments.dataset.toggleReady === 'true') return; comments.dataset.toggleReady = 'true'; // Elements to toggle const targets = []; const row = comments.querySelector('.row'); if (row) targets.push(row); const text4 = comments.querySelector('.text'); if (text4) targets.push(text4); const form = comments.querySelector('form'); if (form) targets.push(form); const pagination = comments.querySelector('.pagination'); if (pagination) targets.push(pagination); // Hide all targets by default targets.forEach(el => el.style.display = 'none'); let visible = false; const button = document.createElement('button'); button.textContent = 'Show Comments'; button.style.marginBottom = '10px'; button.style.cursor = 'pointer'; button.setAttribute("class", "button likeButton button--primary button--solid"); button.addEventListener('click', () => { visible = !visible; button.textContent = visible ? 'Hide Comments' : 'Show Comments'; targets.forEach(el => { el.style.display = visible ? '' : 'none'; }); }); // Insert button at the top of .comments comments.insertBefore(button, comments.firstChild); } // Run on load addToggleButton2(); // Observe DOM changes for SPA navigation const observer2 = new MutationObserver(addToggleButton2); observer2.observe(document.body, { childList: true, subtree: true }); function appendStylesheet(cssText) { const style = document.createElement('style'); style.textContent = cssText; document.head.appendChild(style); } appendStylesheet(` /* remove font weight */ .text--bold { font-weight: unset } /* widen homepage */ .page-home .container-fluid { max-width: 80% } /* removed footer and permanent news announcement */ .footer, div.row.justify-content-center { display:none } /* watch page .page-video */ .page-video .container-fluid { max-width: 97%; display: unset } /* remove padding under search bar */ .page-video .content { padding-top: 64px !important; } /* liked by, more from user, get pushed to end (removes flex-boxes) */ .container-fluid { display: unset } /* big video player */ @media (min-width: 768px) { .page-video .col-md-9 { flex: unset; max-width: 100%; } } /* liked by more from user, make as wide as video player (redundant as it is hidden) */ @media (min-width: 768px) { .page-video .col-md-3 { flex: unset; max-width: 100%; } } @media (min-width: 768px) { .page-video .col-md-6 { flex: unset; max-width: 6%; width: 76%; } } /* more from user , more like this smaller thumbs */ @media (min-width: 300px) and (min-width: 768px) { .page-video .moreFromUser__item,.page-video .moreLikeThis__item { width: calc(15% - 3.75px); } } /* remove liked by user */ .page-video__sidebar > div:first-child { display: none } /* remove Comments header label */ .comments.mt-4.mb-4 > div:first-of-type{ display: none } `); })();