您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Free UNIQ???
当前为
// ==UserScript== // @name BetterLZT // @namespace hasanbet // @version 1.0.11 beta // @description Free UNIQ??? // @author https://zelenka.guru/openresty (openresty) // @match https://zelenka.guru/* // @grant GM_xmlhttpRequest // @grant GM.setValue // @grant GM.getValue // @grant unsafeWindow // @connect lzt.hasanbek.ru // @run-at document-idle // @license MIT // ==/UserScript== const nickname = document.querySelector(".accountUsername.username").firstElementChild.innerText.trim(), version = "1.0.0", userid = document.querySelector("input[name=_xfToken").value.split(",")[0]; let usercss, adblock, avablock; (async function() { usercss = await GM.getValue("usercss") ? GM.getValue("usercss") : 'null'; adblock = await GM.getValue("adblock") ? GM.getValue("adblock") : 'null'; avablock = await GM.getValue("avablock") ? GM.getValue("avablock") : 'null'; renderFunctions(); setInterval(async () => { adBlockDaemon(); uniqApply(); }, 0); setInterval(usernames, 1000); usernames(); })(); function request(url) { return new Promise((resolve, reject) => GM_xmlhttpRequest({ method: "GET", url: url, onload: response => resolve(response.responseText), onerror: error => resolve(error) })); } function getUID() { return document.querySelector("input[name=_xfToken").value.split(",")[0]; } function uniqSave() { localcss = document.getElementsByClassName("UsernameCss")[0].value; css = encodeURIComponent(localcss.replace(/\n/g, "").replace(/; +/g, ";")); request(`http://lzt.hasanbek.ru:8880/new?user=${nickname}&css=${css}`).catch(e => { XenForo.alert("Ошибка синхронизации с сервером, попробуйте еще раз", 1, 10000) }); setcss(localcss); XenForo.alert("Успех", 1, 10000) } function uniqApply() { if (usercss == 'null' || !usercss) return; let usernames = document.querySelectorAll(".username span:not(.custom)"); usernames.forEach(function (e){ if (e.innerHTML != nickname) return; e.style = usercss; }) } function writeCss(css) { GM.setValue("usercss", css) usercss = css; } async function usernames() { let usernames = document.querySelectorAll(".username span:not(.custom)"); await parseUsernames(Array.from(usernames)); } async function parseUsernames(usernames) { try { for(let e of usernames) parseUsername(e); } catch {} } async function parseUsername(e) { let response = await request("http://lzt.hasanbek.ru:8880/?user=" + e.innerHTML).catch(err => {}); if (response && !e.classList.contains("custom") ) { e.style = response; e.classList.add("custom"); e.innerHTML += ` <i class="fa fa-stars"></i>` } } function setAdblock(e) { GM.setValue("adblock", e) adblock = e; } function setAvablock(e) { GM.setValue("avablock", e) avablock = e; } function renderFunctions() { unsafeWindow.nickname = nickname; unsafeWindow.usercss = usercss; unsafeWindow.setcss = css => writeCss(css); unsafeWindow.setAdblock = e => setAdblock(e); unsafeWindow.setAvablock = e => setAvablock(e); unsafeWindow.request = request; let torender = [uniqApply, uniqSave, getUID, usernames, parseUsername, parseUsernames]; let funcs = torender.map(e => e.toString()); let script = document.createElement('script'); script.appendChild(document.createTextNode(funcs.join(""))); document.head.appendChild(script); renderSettings(); } function isAd(e) { if (e.innerHTML.toLowerCase().includes("@verif_ads") || e.innerHTML.toLowerCase().includes("t.me") || e.innerHTML.toLowerCase().includes("zelenka.guru") || e.innerHTML.toLowerCase().includes("lolz.live") || e.innerHTML.toLowerCase().includes("threads") || e.innerHTML.toLowerCase().includes("member")) { return true; } return false; } async function adBlockDaemon() { adblock = await adblock; avablock = await avablock; // if (!window.location.pathname.includes('/threads/')) {return;} // проверка на главную, и наличие блока рекламы if (window.location.pathname == '/' && document.querySelector(".text_Ads") && adblock == 'on') { document.querySelector(".text_Ads").remove(); return;} let users = document.querySelectorAll("span.userStatus:not(.blocked)"); // удаление рекламы в алертах if (document.querySelector('[data-author="Реклама"]') && adblock == 'on') { let ads = document.querySelectorAll('[data-author="Реклама"]'); ads.forEach(function (e){ e.remove(); }) } // Проверка статуса на юзер пейдже if (document.querySelector(".current_text:not(.blocked)") && adblock == 'on') { let e = document.querySelector(".current_text:not(.blocked)"); let img = document.querySelector(".avatarScaler img"); if (e.innerHTML.toLowerCase().includes("verifteam")) { e.classList.add("blocked"); e.innerHTML = "Реклама скрыта"; img.src = 'https://placehold.co/600x600?text=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D1%81%D0%BA%D1%80%D1%8B%D1%82%D0%B0'; } if (isAd(e)) { e.classList.add("blocked"); e.innerHTML = "Реклама скрыта"; if (avablock == 'on') img.src = 'https://placehold.co/600x600?text=%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE,%20%D1%80%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0'; } } if (users.length < 1 && adblock != 'on') {return;} users.forEach(function (e) { // проверка на крышек if (e.innerHTML.toLowerCase().includes("verifteam") && adblock == 'on') { e.innerHTML = 'Реклама скрыта'; e.classList.add("blocked"); // такое говно в будущем стоит переписать =) $(e).parent().parent().parent().find(".img")[0].style.backgroundImage = `url('https://placehold.co/600x600?text=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D1%81%D0%BA%D1%80%D1%8B%D1%82%D0%B0')`; return; } // проверка на ссылки if (isAd(e) && adblock == 'on') { e.innerHTML = 'Реклама скрыта'; e.classList.add("blocked"); // такое говно в будущем стоит переписать =) if (avablock == 'on') $(e).parent().parent().parent().find(".img")[0].style.backgroundImage = `url('https://placehold.co/600x600?text=%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE,%20%D1%80%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0')`; return; } return; }) } function renderSettings() { $('ul.secondaryContent li:nth-child(10)').after('<li><a href="account/uniq/test">Настройка BetterLZT</a></li>'); if(window.location.pathname == "/account/uniq/test") { let adduniq = document.createElement("div"); adduniq.style = "margin-bottom: 25px"; adduniq.innerHTML = ` <p style='font-size: 25px'>BetterLZT v.${version}</p> <p style='font-size: 17px'>Настройки уника</p> <button type="button" class="button bbCodeSpoilerButton" style="margin-bottom: 15px"> <span class="SpoilerTitle"> <span class="SpoilerTitle" onclick="uniqSave(); uniqApply();">Применить уник</span> </span> </button> <!--<button type="button" class="button bbCodeSpoilerButton" style="margin-bottom: 15px"> <span class="SpoilerTitle"> <span class="SpoilerTitle">Показать список групп</span> </span> </button>--> <p style='font-size: 17px'>Настройки AdBlock</p> <button type="button" class="button bbCodeSpoilerButton" style="margin-bottom: 15px" onclick="setAdblock('on'); XenForo.alert('AdBlock активирован', 1, 10000)"> <span class="SpoilerTitle"> <span class="SpoilerTitle" onclick="setAdblock('on'); XenForo.alert('AdBlock активирован', 1, 10000)">Вкл AdBlock</span> </span> </button> <button type="button" class="button bbCodeSpoilerButton" style="margin-bottom: 15px" onclick="setAdblock('off'); XenForo.alert('AdBlock деактивирован', 1, 10000)"> <span class="SpoilerTitle"> <span class="SpoilerTitle" onclick="setAdblock('off'); XenForo.alert('AdBlock деактивирован', 1, 10000)">Выкл AdBlock</span> </span> </button> <br> <i>Скрытие аватарки при обнаружении ссылок в статусе</i><br> <button type="button" class="button bbCodeSpoilerButton" style="margin-bottom: 15px" onclick="setAvablock('on'); XenForo.alert('Активировано', 1, 10000)"> <span class="SpoilerTitle"> <span class="SpoilerTitle" onclick="setAvablock('on'); XenForo.alert('Активировано', 1, 10000)">Вкл</span> </span> </button> <button type="button" class="button bbCodeSpoilerButton" style="margin-bottom: 15px" onclick="setAvablock('off'); XenForo.alert('Деактивировано', 1, 10000)"> <span class="SpoilerTitle"> <span class="SpoilerTitle" onclick="setAvablock('off'); XenForo.alert('Деактивировано', 1, 10000)">Выкл</span> </span> </button> ` document.getElementsByClassName("ToggleTriggerAnchor")[0].prepend(adduniq); } }