您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Tune-up for em8er.com forums
// ==UserScript== // @name Em-8ER Forums Dashboard // @namespace https://jadex.eu // @version 2.2.1 // @description Tune-up for em8er.com forums // @author Liam "Xeevis" Aqil // @icon https://en.gravatar.com/userimage/18934912/675229e8cc8aa43609d290393fcb84b9.png // @match https://forums.em8er.com/* // @license MIT // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_listValues // @run-at document-start // ==/UserScript== uw = unsafeWindow; uw.bg = GM_getValue("bg", "on") == "on" ? true : false; uw.bg_type = GM_getValue("bg_type", "slideshow"); uw.collapse_sigs = GM_getValue("collapse_sigs", "off") == "on" ? true : false; uw.msg_color = GM_getValue("msg_color", "#010203"); uw.msg_bg_color = GM_getValue("msg_bg_color", "#010203"); uw.msg_bg_color_transparent = GM_getValue("msg_bg_color_transparent", "off") == "on" ? true : false; uw.tweaks = GM_getValue("tweaks", "off") == "on" ? true : false; var styles = ""; if (uw.msg_color != "#010203") { styles += `body { color: ${uw.msg_color} !important }\n`; } if (uw.msg_bg_color_transparent) { uw.msg_bg_color = "transparent"; } if (uw.msg_bg_color != "#010203") { styles += `.messageList .message { background-color: ${uw.msg_bg_color} !important }\n`; } if (uw.collapse_sigs) { styles += `.efd_quoteContainer { background-color: transparent !important } .efd_quoteContainer.expanded .efd_quote { max-height: none !important } .efd_quote { max-height: 95px !important } .efd_quoteExpand { top: 30px !important }\n`; } GM_addStyle(styles); document.addEventListener("DOMContentLoaded", function () { registerMenuCommand(Configuration); uw.$("#AccountMenu ul.col2:first").append("<li><a class='efd_configuration' href='#'><i class='fa fa-cog' aria-hidden='true'></i> EF Dashboard</a></li>"); uw.$("#copyright").append("<a class='efd_configuration' href='#'><i class='fa fa-cog' aria-hidden='true'></i> Ember Forums Dashboard</a>"); var bs = uw.$.backstretch; if (!uw.bg) { bs("destroy"); } switch (uw.bg_type) { case 'static': bs("show", 1); bs("pause"); break; case 'random': bs("show", Math.floor(Math.random() * ($('body').data("backstretch").images.length + 1))); bs("pause"); break; } if (uw.collapse_sigs) { GM_addStyle(`.efd_quoteExpand { background: linear-gradient(to bottom, rgba(32, 32, 32, 0) 0%, ${$(".messageList .message").css("background-color")} 80%) !important }`); $(".signature > aside").wrapAll(function () { return `<div class ="bbCodeQuote efd_bbCodeQuote"><blockquote class ="quoteContainer efd_quoteContainer"><div class ="quote efd_quote"></div><div class ="quoteExpand quoteCut efd_quoteExpand">Expand signature...</div></blockquote></div>`; }); } if (tweaks) { // Home should link to Em8er.com main site uw.$("li.navTab.home > a").attr("href", "https://em8er.com/"); // Fix logo width and replace with better image uw.$("li.navTab.xbNavLogo img").width(189).attr("src", "https://i.imgur.com/75GrQ0Z.png"); // Fix pager appearance on DevTracker and add one to the bottom var pager = uw.$(".pageContent > .PageNav").wrapAll(function () { return `<div class="pageNavLinkGroup"></div>`; }).parent().clone().insertAfter('ol.messageList'); } }); function Configuration() { var efd_overlay = XenForo.createOverlay(null, $(` <div class="xenOverlay"> <form id="efd_form"> <div class="section"> <h2 class="heading h1">Ember Forums Dashboard</h2> <h3 class="primaryContent">Settings</h3> <div class="secondaryContent"> <dl class="ctrlUnit sectionLink"> <dd> <ul> <li> <label for="bg"> <input type="checkbox" name="bg" id="bg"> Show background as... </label> <ul> <li> <select name="bg_type" id="bg_type" class="textCtrl autoSize"> <option value="slideshow">Fading Slideshow</option> <option value="static">Static Image</option> <option value="random">Random Image</option> </select> </li> </ul> </li> <li> <label for="collapse_sigs"> <input type="checkbox" name="collapse_sigs" id="collapse_sigs"> Collapse signatures </label> <p class="hint">This setting will collapse large signatures under expander which needs to be clicked.</p> </li> <li> <label for="tweaks"> <input type="checkbox" name="tweaks" id="tweaks"> Enable UI tweaks </label> <p class="hint">Cumulative collection of popular suggestions that change certain aspects of the forums.</p> </li> </ul> </dd> </dl> </div> <h3 class="primaryContent">Theme</h3> <div class="secondaryContent"> <dl class="ctrlUnit sectionLink"> <dd> <ul> <li> Message font color: <input class ="textCtrl" name="msg_color" type="color" value="${msg_color}" /> </li> <li> Message background color: <input class ="textCtrl" name="msg_bg_color" type="color" value="${msg_bg_color}" /> <label for="msg_bg_color_transparent"> <input type="checkbox" name="msg_bg_color_transparent" id="msg_bg_color_transparent"> Translucent </label> </li> <li class ="presets">Presets: <button type="button" class ="button" data-msg_color="#010203" data-msg_bg_color="#010203">Default</button> <button type="button" class ="button" data-msg_color="#b9babc" data-msg_bg_color="#36393e">Discord</button> <button type="button" class ="button" data-msg_color="#dcdcdc" data-msg_bg_color="#161c1c">Firefall</button> </li> </ul> </dd> </dl> </div> <div class="sectionFooter overlayOnly"> <div class="muted" style="float: left"> <a class="concealed">Developed by Xeevis<span></span></a> </div> <button class ="button primary">Save and reload</button> <button type="button" id="reset_efd" class="button secondary">Reset to defaults</button> </div> </div> </form> </div>`), { noCache: false }); $(".efd_configuration").click(function () { efd_overlay.load(); return false; }); $("#bg").prop("checked", bg); $("#collapse_sigs").prop("checked", collapse_sigs); $("#tweaks").prop("checked", tweaks); $("#msg_bg_color_transparent").prop("checked", msg_bg_color_transparent); $(`#bg_type option[value="${bg_type}"]`).prop("selected", true); $(".presets > button").click(function () { $("input[name='msg_color']").val($(this).data("msg_color")); $("input[name='msg_bg_color']").val($(this).data("msg_bg_color")); }); $("#reset_efd").click(function () { window.postMessage("efd_reset", "https://forums.em8er.com"); location.reload(); }); $("#efd_form").submit(function (e) { e.preventDefault(); var fields = $(this).serializeArray(); fields = fields.concat( $("#efd_form input[type=checkbox]:not(:checked)").map( function () { return { "name": this.name, "value": "off" }; }).get()); window.postMessage(fields, "https://forums.em8er.com"); location.reload(); }); } window.addEventListener("message", parseData, false); function parseData(event) { var data = event.data; if (data.includes("efd_reset")) { var keys = GM_listValues(); for (var i = 0; i < keys.length; i++) { GM_deleteValue(keys[i]); } return; } if (event.origin == "https://forums.em8er.com") { for (var j = 0; j < data.length; j++) { var field = data[j]; GM_setValue(field.name, field.value); } } } function registerMenuCommand(Configuration) { var funcText = Configuration.toString(); var funcName = funcText.replace(/^function\s+(\w+)\s*\((.|\n|\r)+$/, "$1"); var script = document.createElement("script"); script.textContent = funcText + "\n\n"; script.textContent += "jQuery(document).ready(function() {" + funcName + "(jQuery);});"; document.body.appendChild(script); }