您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Possible to change config in source code. Keep to display moderator chat in a while.
当前为
// ==UserScript== // @name Youtube live, Simple Chat Stylizer // @name:ja Youtube live, シンプルスタイル // @description Possible to change config in source code. Keep to display moderator chat in a while. // @description:ja スクリプトのソース内で設定変更できます。モデレータチャットを一定時間、表示し続けます。 // @namespace http://tampermonkey.net/ // @version 0.3 // @description try to take over the world! // @author You // @match https://www.youtube.com/live_chat* // @grant none // ==/UserScript== (function() { 'use strict'; // ================ // config // ================ // if true, author name is hide var isHideAuthorName = false; // if true, author name is display to right side in chat window var isAuthorNameRightSide = true; var authorNameMaxWidth = 100; // if true, user thumbnail is hide var isHideThumbnail = false; // if true, member badge is hide var isHideBadge = false; // if true, input panel is hide (you can't post chat / super chat) var isHideFooter = false; // if true, header is hide var isHideHeader = true; // if true, show/hidden toggle button is hide var isHideToggleButton = false; // number of seconds moderator chat is display var moderatorChatTimeout = 20; // ================ setTimeout(function () { var stylesheet = ""; // bold stylesheet += "#message.yt-live-chat-text-message-renderer { font-weight: bold; }"; // simple #input-panel styles stylesheet += "yt-live-chat-message-input-renderer { padding: 4px 16px; }"; stylesheet += "#input-panel #container { position: relative; }"; stylesheet += "#input-panel #container > #buttons { position: absolute; top: 0; right: 0; transform: scale(0.8); margin: 0; }"; if (isHideAuthorName) { stylesheet += "#author-name.yt-live-chat-author-chip { display: none; }"; } else if (isAuthorNameRightSide) { stylesheet += "#content #author-name.yt-live-chat-author-chip { position: absolute; right: 10px; top: 0px; opacity: 0.7; transform: scale(0.8); }"; } else { stylesheet += "#author-name.yt-live-chat-author-chip { max-width: " + authorNameMaxWidth + "px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }"; } if (isHideThumbnail) { stylesheet += "#author-photo { display: none !important; }"; } if (isHideBadge) { stylesheet += "#chat-badges { display: none !important; }"; } if (isHideFooter) { stylesheet += "#panel-pages { display: none !important; }"; } if (isHideHeader) { stylesheet += "yt-live-chat-header-renderer { display: none !important; }"; } if (isHideToggleButton) { stylesheet += "#show-hide-button.ytd-live-chat-frame { display: none !important; }"; } // moderator chats is fixed to bottom in chat window stylesheet += "#moderator-chat-container { position: fixed; bottom: 0; background: #fff; left: 0; right: 0; z-index: 10000; }"; // apply style var $style = document.createElement("style"); $style.innerText = stylesheet; document.body.appendChild($style); // fix moderator chat var $container = document.createElement("div"); $container.id = "moderator-chat-container"; document.querySelector("yt-live-chat-item-list-renderer #contents").appendChild($container); setInterval(observeModerator, 2000); }, 5000); function appendModeratorChat($chat) { document.querySelector("#moderator-chat-container").appendChild($chat); setTimeout(function () { $chat.remove(); }, moderatorChatTimeout * 1000); } function observeModerator() { var $chats = document.querySelectorAll("yt-live-chat-text-message-renderer[author-type='moderator']"); for (var i = 0; i < $chats.length; i++) { appendModeratorChat($chats[i]); } } })();