您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Заметки для юзеров Lolzteam
// ==UserScript== // @name StickyNotes // @namespace StickyNotes // @version v2 // @description Заметки для юзеров Lolzteam // @author https://zelenka.guru/lays (openresty) // @match https://zelenka.guru/* // @grant GM.setValue // @grant GM.getValue // @grant unsafeWindow // @run-at document-body // @license MIT // ==/UserScript== let notices; (async function() { notices = await GM.getValue("notices") ? GM.getValue("notices") : `{"users": {}}`; window.addEventListener("DOMContentLoaded",(event) => { profileRender(); }); renderFunctions(); })(); async function shortcutCall() { let returnit = `[exceptids=${await shortcut}] [/exceptids]` document.querySelector(".fr-element.fr-view.fr-element-scroll-visible p").innerHTML = await returnit; } function setShortcut(e) { GM.setValue("adblock", e) adblock = e; XenForo.alert('AdBlock настроен', 1, 10000) } async function profileRender() { if (!document.querySelector(".avatarScaler")) {return false;} notices = await JSON.parse(await notices); nick_val = document.querySelector("h1.username span").innerHTML.replace(/ <i.*?>.*?<\/i>/ig,'') let noticer = document.querySelector(".insuranceDeposit"); if (!notices.users[nick_val]) { notices.users[nick_val] = { 'text': 'заметка не установлена' } notice = await notices.users[nick_val] }else { notice = await notices.users[nick_val] } let notice_render = ` <br> <div class="section insuranceDeposit"> <div class="secondaryContent"> <h3> Заметка для ${nick_val} </h3> <h3 style="margin-bottom: 0px; font-size: 18px !important;" class="amount"> ${await notice.text} </h3> <div style="margin-top: 15px; display: flex; gap: 5px;"> <a class="button leftButton primary" onclick="noteSet(nick_val)">Изменить заметку</a> </div> </div> </div>`; // <a class="button leftButton primary" onclick="voteTrust(${blzt_trust_val})">Изменить рейтинг👍👎</a> let notice_block = document.createElement("div"); notice_block.innerHTML = notice_render; noticer.append(notice_block); } function noteSet(trust) { nick_val = document.querySelector("h1.username span").innerHTML.replace(/ <i.*?>.*?<\/i>/ig,'') let html = ` <i>Введите комментарий,> <input id="commentt" style=" padding: 6px;border-radius: 6px;height: 20px;background: #303030;color: white;border: 1px solid rgb(54, 54, 54); placeholder="Заметка"> <div style="margin-top: 15px; display: flex; gap: 5px;"> <a class="button leftButton primary" onclick="commitNote('${nick_val}')">Сохранить</a> `; XenForo.alert(html, "Изменить заметку"); } async function commitNote(nick_val) { console.log(await notices) notices = await JSON.parse(await notices); let comment = document.querySelector("#commentt").value; if (!comment) { return XenForo.alert("Укажите комментарий!", 1, 10000) } if (!notices.users[nick_val]) { notices.users[nick_val] = { 'text': comment } }else { notices.users[nick_val].text = comment; } setCache(JSON.stringify(notices)) location.reload() } async function setCache(e) { return await GM.setValue('notices', e); } function renderFunctions() { unsafeWindow.notices = notices; unsafeWindow.setShortcut = e => setShortcut(e); let torender = [dialogWin, commitNote, noteSet, profileRender]; unsafeWindow.setCache = e => setCache(e); let funcs = torender.map(e => e.toString()); let script = document.createElement('script'); script.appendChild(document.createTextNode(funcs.join(""))); document.head.appendChild(script); } async function dialogWin() { nickname = document.querySelector(".accountUsername.username").firstElementChild.innerText.trim().replace(/<[^>]*>/g, ' ').replace(/\s{2,}/g, ' ').trim().replace(" Premium", "").trim(); let htmlall = ` <div id="settings1-content" class="settings-content"> <h2>FuckMouse</h2> <label> <span>ID Юзеров (через запятую)</span><br> <input id="secretph" placeholder="123, 1234, и т.д..." style="margin-top: 4px;"> <a onclick="setShortcut(document.querySelector('#secretph').value)">Сохранить</a> </label> </div> <style> .errorOverlay>.baseHtml { padding: 0px; } .xenOverlay .errorOverlay .errorDetails { padding: 0px; white-space: normal; } .errorDetails { white-space: normal; padding: 0; margin: 0; font-family: sans-serif; background-color: #303030; color: white; } input { padding: 4px; border-radius: 6px; height: 20px; background: #303030; color: white; border: 1px solid rgb(0, 186, 120); } .settings-content { padding: 20px; /* border: 1px solid #ccc; */ transition: 0.5s; } button { color: #fff; border: 0; background: 0; padding: 0 0 5px; margin-left: 7px; font-size: 15px; transition: 0.5s; } .customicon { background-color:#424141; padding: 10px; transition: .1s; } .customicon:hover { background-color:#242424; } .available { border-top: 1px solid rgb(0, 186, 120); } .onlyprem { border-top: 1px solid rgb(177, 0, 9); } </style> <script> var elements = document.querySelectorAll('button'); for (var i = 0; i < elements.length; i++) { elements[i].addEventListener('click', function(e) { for (let index = 1; index < 50; index++) { try { document.getElementById('settings' + index + '-content').style.display = 'none'; document.getElementById('settings' + index).style.boxShadow = 'none'; } catch{} } e.target.style = "box-shadow: inset 0px -2px 0px 0px rgb(0, 186, 120);"; document.getElementById(e.target.id + '-content').style.display = 'block'; }); } </script> ` let html_prem = ` ${htmlall} `; return XenForo.alert( `${html_prem}`, 'Настройки FuckMouse.' ) }