Greasy Fork 支持简体中文。

BetterLZT-lite By LolzNews & Openresty

Legendary extension for Lolzteam from LolzNews

// ==UserScript==
// @name       BetterLZT-lite By LolzNews & Openresty
// @namespace  betterlzt
// @version    2.0.0
// @author     Openresty \w LolzNews
// @license    Apache 2.0
// @description Legendary extension for Lolzteam from LolzNews
// @icon       https://lolz.live/styles/brand/download/avatars/three_avatar.svg
// @match      https://zelenka.guru/*
// @match      https://lzt.market/*
// @match      https://lolz.market/*
// @match      https://lolz.live/*
// @connect    *
// @connect    hasan.ovh
// @connect    hasan.su
// @grant      GM.getValue
// @grant      GM.setValue
// @grant      GM_getValue
// @grant      GM_setValue
// @grant      GM_xmlhttpRequest
// @grant      unsafeWindow
// @run-at     document-body
// ==/UserScript==
//
// ЛЮБЫЕ МОДИФИКАЦИИ КОДА, КОТОРЫЕ НАРУШАЮТ ПРАВИЛА ФОРУМА, ПРИВОДЯТ К СБОЯМ И НАРУШАЮТ РАБОТУ
// ФОРУМА/РАСШИРЕНИЯ ПРИВЕДУТ К БЛОКИРОВКАМ (ФОРУМНОЙ УЧЕТНОЙ ЗАПИСИ/УЧЕТНОЙ ЗАПИСИ BETTERLZT LIVE)
//

(async function () {
    'use strict';
  
    var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)();
    var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)();
    var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)();
    var _unsafeWindow = /* @__PURE__ */ (() => typeof unsafeWindow != "undefined" ? unsafeWindow : void 0)();
    function conVar(convar, isGlobal = false) {
      try {
        if (isGlobal) return globalConfig[convar];
        return userConfig[convar];
      } catch (e) {
        return false;
      }
    }
    function set_conVar(convar, value, isGlobal = false) {
      if (isGlobal) {
        globalConfig[convar] = value;
        return saveConfig(true);
      }
      userConfig[convar] = value;
      saveConfig();
    }
    function saveConfig(isGlobal = false) {
      if (isGlobal)
        return _GM_setValue("globalConfig", JSON.stringify(globalConfig));
      _GM_setValue("userConfig", JSON.stringify(userConfig));
    }
    function makeWatermark(text, link = "#") {
      if (!text) return false;
      const waterm = document.createElement("h1");
      waterm.style = "position:fixed;bottom:5px;right:5px;opacity:0.5;z-index:99;color:white;font-size: 25px;";
      waterm.innerHTML = text;
      waterm.href = link;
      return document.body.append(waterm);
    }
    function isJson(str) {
      try {
        JSON.parse(str);
      } catch (e) {
        console.error("[BetterLZT Tools] JSON parse failed: " + e);
        return false;
      }
      return true;
    }
    function changeUserStatus(status) {
      if (!status) return;
      let statusArea = document.querySelector(".userBlurb.current_text ");
      return statusArea.innerHTML = status;
    }
    function changeUserAvatar(mode = "def") {
      if (conVar("lolznews")) mode = "lolznews";
      try {
        let imageUrl;
        switch (mode) {
          case "lolznews":
            imageUrl = "https://hasan.ovh/better/lolznews.png";
            break;
          default:
            imageUrl = "data:image/png;base64,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";
            break;
        }
        let imageArea = document.querySelector(".avatarScaler img");
        imageArea.src = imageUrl;
        return true;
      } catch {
        return false;
      }
    }
    function inProfile() {
      return !!document.querySelector(".avatarScaler");
    }
    function xfAlert(text) {
      return XenForo.alert(text, 1, 1e4);
    }
    const css = ` <style>
      .main-text {
          font-size: 13px;
          font-style: normal;
          font-weight: 600;
          line-height: normal;
          display: inline;
      }
      .btns-l {
          margin-bottom: 10px;
          margin-right: 10px;
          border-radius: 6px;
          display: inline-block;
          padding: 7px 15px;
          background: #363636;
          justify-content: center;
          align-items: center;
          gap: 12px;
          font-size: 13px;
          font-style: normal;
          font-weight: 600;
      }
      details {
          width: 100%;
          background: #272727;
          border: solid 3px #363636;
          box-shadow: 0 0.1rem 1rem -0.5rem rgba(0, 0, 0, .4);
          border-radius: 8px;
          overflow: hidden;
          margin-top: -25px;
          margin-bottom: 35px;
      }
      summary {
          padding: 15px;
          display: block;
          background: #363636;
          position: relative;
          cursor: pointer;
          color: #D6D6D6;
          font-family: Open Sans;
          font-size: 14px;
          font-style: normal;
          font-weight: 600;
          line-height: normal;
      }
      summary span {
          color: #949494;
          font-size: 13px;
      }
      details span {
          color: #949494;
          font-size: 13px;
      }
      summary:after {
          font-family: "Font Awesome 5 Pro";
          color: rgb(148,148,148);
          content: '>';
          position: absolute;
          left: 97%;
          top: 50%;
          transform: translate(-50%, -50%) rotate(90deg);
          transform-origin: 0.2rem 50%;
          transition: 0.25s transform ease;
      }
      details[open] > summary:after {
          transform: translate(-50%, -50%) rotate(270deg);
      }
      details[open] > div {
          padding: 10px 20px;
      }
      details .leftButton {
          margin-right: 10px;
      }
      details button {
          width: 45px;
          height: 45px;
          padding: 5px;
          justify-content: center;
          align-items: center;
          color: rgb(34,142,93);
          border-radius: 6px;
          background: #363636;
          border: none;
          font-size: 25px;
          margin-bottom: 10px;
          margin-right: 10px;
      }
      details button.active {
          border: 1.6px solid #07C682;
          background: linear-gradient(180deg, rgba(7, 198, 130, 0.12) 0%, rgba(7, 198, 130, 0.00) 100%), #363636;
      }
      details input.input{
          width: 77%;
          padding: 6px;
          border-radius: 6px;
          height: 20px;
          background: #303030;
          color: white;
          border: 1px solid rgb(54, 54, 54);
      }
  
      details input[type=checkbox] {
          width: auto;
      }
      details input[type=checkbox]:after {
          border-radius: 4px;
      }
      
      .reportBtn {
          font-weight: bold; padding: 3px 10px; background: #218e5d; border-radius: 50px; margin-right: 5px; cursor: pointer; color: #fff; border: 0;
      }
      </style>`;
    function init() {
      if (conVar("customBackground")) {
        document.querySelector("body").style = `background-size: cover;
                  background-position: center;
                  background-attachment: fixed;
                  background-repeat: no-repeat;
                  background-image: linear-gradient(rgba(54, 54, 54, 0.85), rgba(54, 54, 54, 0.85)), url('${conVar(
        "customBackground"
      )}')`;
      }
    }
    function saveBackground() {
      let bgUrl = document.querySelector("#custombg").value;
      xfAlert("Сохранено");
      if (bgUrl.length < 1) return set_conVar("customBackground", false);
      return set_conVar("customBackground", bgUrl);
    }
    const render = `
  let handling = 0;
             let step = 0;
      window.addEventListener('message', function(event) {
          if (event.data == '20100') {
              handling = 0;
              step = 0
              iframe = document.querySelectorAll('#areaext');  
              iframe.forEach(function (e){
                  e.contentWindow.postMessage("10100", "*");
                  e.contentWindow.postMessage(betterVersion, "*");
                  e.contentWindow.postMessage(XenForo.visitor.user_id, "*");
              })
          }
          if (event.data == '20200') {
              handling = 20200
              step = 0
          }
          if (event.data == '20300') {
              handling = 20300
              step = 0
              set_conVar('userScripts', 0)
              xfAlert('Успешно!')
          }
          else if (handling == 20200 && event.data != '20200') {
              if (step == 0) {
                  window.betterAPI.loadScript(event.data, 'Ext'+ event.data, function() {
                      window.betterAPI.runScript(event.data, 0);
                  });
                  handling = 20200;
                  step = 1;
                  xfAlert('Успешно!')
              }
              if (step == 1) {
                  xfAlert('Попытка установить скрипт (LiveID#' +event.data + ')') 
                  handling = 0;
                  step = 0;
              }
          }
          
      });
      
      function steam(arg) {
          e.contentWindow.postMessage(arg, "*");
      }
  `;
    const renderFrame = `<iframe src='https://hasan.su/bettermarket/1_2.php' width='100%' frameborder='0' height='800px' id='areaext'> </iframe> `;
    function exuiOnPage() {
      let htmlall = `<br>
      <details>
          <summary>Основные<br><span>Реклама, секретный вопрос</span></summary>
          <div><br>
              <div class='btns-l' id='rai'> ИИ Ассистент (Розыгрыши)</div>
              <div class='btns-l' id='adblock'> Блокировщик рекламы</div>
              <div class="btns-l" id="trustFactor">Фактор доверия</div>
              <div class='btns-l' id='hideLikes'> Скрывать счетчик лайков в профиле</div> ${globalConfig["unlock_dev"] ? "<div class='btns-l' id='visitorDetector'> Обнаруживать [visitor] в сообщениях</div>" : ""}
              <div class='btns-l' id='reportBtns'> Показывать кнопки для быстрой подачи жалоб</div>
              <div class='btns-l' id='nickCopy'> Показывать кнопки для копирования ника</div>
              <hr style="border: solid 1px #363636;">
              <p class="main-text" onclick="window.location.href = 'https://telegra.ph/Security-note-for-BetterLZT-feature-06-27'">Автоматический ввод секретной фразы: (Важная заметка! кликабельно)<br></p>
              <br>
              <input id="secretph" class="input" placeholder="Введите вашу секретную фразу"> <a class="button leftButton primary" onclick="saveSecret()" id="secretphBtn">Сохранить</a>
  
              </div>
      </details>
      <br>
      <details>
          <summary>Внешний вид<br><span>Оформи форум под себя</span></summary>
          <div><br>
              <p>Не работает в LTS</p>
              <p class="main-text">Кастомный фон для всего форума (ссылка на картинку): <br></p>
              <br>
              <input id="custombg" class="input" placeholder="URL"> <a class="button leftButton primary" onclick="saveBackground()">Сохранить</a>
  
          </div>
      </details>
      <br>
      <details>
          <summary>Кнопки быстрой подачи жалоб<br><span>Редактирование текста на кнопках</span></summary>
          <div><br>
             <p class="main-text">Нажмите на кнопку и введите текст. Учтите, что этот текст будет отправлен в жалобе. Пустой текст скрывает кнопку<br></p>
             <br>
             <input type="text" id="reportBtn-1" class="reportBtn" value="${userConfig["reportBtn-1"]}"> <input type="text" id="reportBtn-2" class="reportBtn" value="${userConfig["reportBtn-2"]}"> <input type="text" id="reportBtn-3" class="reportBtn" value="${userConfig["reportBtn-3"]}">
  
          </div>
      </details>
      <br>
      <details>
          <summary>Маркетплейс расширений<br><span>Запускайте лушие скрипты из раздела "Дополнения" без установки в Tampermonkey<br>Все расширения проверены и безопасны</span></summary>
          <div><br>
             ${globalConfig["unlock_dev"] ? "DEV: <input type='text' id='loadcustom' placeholder='Введите ссылку'><a class='btns-l' id='saveCustom'>Сохранить</a>" : ""}
           ${renderFrame} 
          </div>
      </details>
      `;
      let script = document.createElement("script");
      script.appendChild(document.createTextNode(render));
      document.head.appendChild(script);
      let html_prem = `
      <div style="background: rgb(54, 54, 54);
          margin: 5px 10px;
          padding: 0 15px 15px 15px; border-radius: 0px; ${localCache.serverNotice ? "" : "display: none"}"><br>
          ${localCache.serverNotice ?? ""}
      </div><br>
      ${globalConfig["unlock_dev"] ? '<div style="background: rgb(54, 54, 54);margin: 5px 15px;padding: 0 15px 15px 15px; border-radius: 10px;"><br>BetterLZT Dev mode</div>' : ""}<br>
      ${htmlall}<br>
      <div style="display: flex;
      width: 598px;
      justify-content: space-between;
      align-items: flex-start;">
      Version ${betterVersion}<br>
      Marketplace 1.2
      </div>
      <a class="button leftButton primary" target="_blank" href="https://t.me/lolz_news">LolzNews - Подпишитесь)</a>
      <br><br>
      <a class="button leftButton primary" target="_blank" href="https://lolz.live/payment/balance-transfer?user_id=2626330&hold=0&comment=%D0%94%D0%BE%D0%B1%D1%80%D0%BE%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D0%BF%D0%BE%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5">Разработчику на доширак</a>
      <a class="button leftButton" href="https://t.me/trixydev">ТГк Разработчика</a> <a class="button leftButton" onclick="resetConfig()">Сброс настроек</a>
  
     ${css}
      `;
      document.querySelector(".titleBar").innerHTML = "<h1>LN BetterLZT - Настройки</h1>";
      document.querySelector(".errorOverlay").innerHTML = html_prem;
      return true;
    }
    const adlist_w = [
      "zelenka.guru/threads/3649746",
      "http://proxysoxy.com",
      "zelenka.guru/threads/2770783",
      "https://t.me/talkthenews",
      "https://zelenka.guru/threads/5862277/",
      "zelenka.guru/threads/5802663/",
      "@UniServBot",
      "zelenka.guru/threads/5886612",
      "https://zelenka.guru/threads/5830418/",
      "zelenka.guru/angeldrainer/",
      "zelenka.guru/threads/5883557",
      "zelenka.guru/threads/5720998",
      "https://zelenka.guru/threads/5488501",
      "https://zelenka.guru/threads/4871985/",
      "zelenka.guru/threads/3649746",
      "zelenka.guru/threads/5402454",
      "zelenka.guru/threads/2630352",
      "https://t.me/poseidon_project",
      "https://zelenka.guru/threads/4826265/",
      "zelenka.guru/threads/4939541",
      "zelenka.guru/threads/4073607",
      "zelenka.guru/threads/5071761/",
      "https://zelenka.guru/threads/3695705/",
      "zelenka.guru/members/4177803",
      "@verif_ads",
      "verifteam",
      "SmmPanelUS.com",
      "lteboost.ru"
    ];
    const adlist_white = ["t.me/lolz_news", "https://t.me/lolz_news"];
    await( _GM_getValue("adBlock"));
    function run$4() {
      if (!conVar("adblock")) return false;
      if (document.querySelector(".avatarScaler")) return profile$1();
    }
    function containsLink(str) {
      const urlRegex = /https?:\/\/[^\s|<>"]+(?!(?:(?:[^<]*<){2}))/g;
      const noHtmlStr = str.replace(/<[^>]*>/g, "");
      const matches = noHtmlStr.match(urlRegex);
      return !!matches;
    }
    function profile$1() {
      let userStatus = document.querySelector(".userBlurb.current_text");
      try {
        if (containsLink(userStatus.innerHTML) && !adlist_white.some((o) => userStatus.innerHTML.toLowerCase().includes(o))) {
          changeUserStatus("Реклама скрыта");
          changeUserAvatar();
          return true;
        }
        if (adlist_w.some((o) => userStatus.innerHTML.toLowerCase().includes(o)) && !adlist_white.some((o) => userStatus.innerHTML.toLowerCase().includes(o))) {
          changeUserStatus("Реклама скрыта");
          changeUserAvatar();
          return true;
        }
      } catch (e) {
        if (globalConfig["unlock_dev"])
          console.log("метод обнаружения рекламы не сработал: " + e);
        return false;
      }
      return userStatus.innerHTML === "Реклама скрыта";
    }
    const ui_primary = "#228e5e";
    const ui_error = "#8e2222";
    async function show() {
      let theme2 = await conVar("dashboard", true);
      switch (await theme2) {
        case "exui":
          exuiOnPage();
          break;
        default:
          exuiOnPage();
          break;
      }
      buttonsRender();
      const buttons = document.querySelectorAll(".btns-l");
      const report_buttons = document.querySelectorAll(".reportBtn");
      buttons.forEach((button) => {
        button.addEventListener("click", handleClick);
      });
      report_buttons.forEach((button) => {
        button.addEventListener("change", handleClick);
      });
    }
    function handleClick(e) {
      e = e.target;
      let state;
      switch (e.id) {
        case "adblock":
          state = conVar("adblock");
          set_conVar("adblock", !state);
          e.style.background = state ? "" : ui_primary;
          if (!state) run$4();
          break;
        case "hideLikes":
          state = conVar("hideLikes");
          set_conVar("hideLikes", !state);
          e.style.background = state ? "" : ui_primary;
          break;
        case "trustFactor":
          state = conVar("trustFactor");
          set_conVar("trustFactor", !state);
          e.style.background = state ? "" : ui_primary;
          break;
        case "visitorDetector":
          state = conVar("visitorDetector");
          set_conVar("visitorDetector", !state);
          e.style.background = state ? "" : ui_primary;
          break;
        case "reportBtns":
          state = conVar("reportBtns");
          set_conVar("reportBtns", !state);
          e.style.background = state ? "" : ui_primary;
          break;
        case "saveCustom":
          window.betterAPI.loadScript(document.querySelector("#loadcustom").value, "Test", function() {
            window.betterAPI.runScript("Test", 0);
          });
          break;
        // Report buttons. TODO: refactor
        case "reportBtn-1":
          set_conVar("reportBtn-1", e.value);
          xfAlert("Сохранено");
          break;
        case "reportBtn-2":
          set_conVar("reportBtn-2", e.value);
          xfAlert("Сохранено");
          break;
        case "reportBtn-3":
          set_conVar("reportBtn-3", e.value);
          xfAlert("Сохранено");
          break;
        case "nickCopy":
          state = conVar("nickCopy");
          set_conVar("nickCopy", !state);
          e.style.background = state ? "" : ui_primary;
          break;
        case "hide_ftapanel":
          state = conVar("hide_ftapanel");
          set_conVar("hide_ftapanel", !state);
          e.style.background = state ? "" : ui_primary;
          break;
        case "rai":
          state = conVar("rai");
          set_conVar("rai", !state);
          e.style.background = state ? "" : ui_primary;
          break;
        default:
          e.style.background = ui_error;
          xfAlert(
            "Данная функция временно недоступна. Обновите страницу"
          );
          break;
      }
    }
    function settingsButtons() {
      let accountMenu = document.querySelector(
        "#AccountMenu > ul > li:nth-child(12) > a"
      );
      let settingsMenuItem = document.createElement("li");
      settingsMenuItem.innerHTML = '<a href="betterlzt_settings">BetterLZT</a>';
      accountMenu.parentNode.insertBefore(
        settingsMenuItem,
        accountMenu.nextSibling
      );
    }
    function buttonsRender() {
      let buttons = document.querySelectorAll(".btns-l");
      buttons.forEach((e) => {
        if (conVar(e.id)) e.style.background = ui_primary;
      });
    }
    function saveSecret() {
      let phrase = document.querySelector("#secretph").value;
      if (!phrase || conVar("secureTest", false) !== true) {
        set_conVar("secretPhrase", false);
        set_conVar("safeMode", true, true);
        return alert("Обнаружено нарушение безопасности. Секретная фраза удалена из кеша BetterLZT\nФункция автозаполнения секретной фразы отключена");
      }
      if (conVar("safeMode", true) || conVar("secureTest", false) !== true) {
        return alert("Включен безопасный режим\nФункция автозаполнения секретной фразы недоступна\nПереустановите расширение");
      }
      document.querySelector("#secretphBtn").innerHTML = "Сохранено!";
      return set_conVar("secretPhrase", phrase);
    }
    function pasteSecret() {
      let secretArea = document.querySelector("input[name=secret_answer]");
      if (secretArea && conVar("secretPhrase")) {
        secretArea.value = conVar("secretPhrase");
        return true;
      }
      return false;
    }
    function calculate(user) {
      try {
        if (localCache.TrustFactorService.minExtVersion > betterVersion || !localCache.TrustFactorService.status) {
          xfAlert("В работе службы TrustFactor возникла ошибка: Службы LIVE недоступны");
          return "unavailable";
        }
        user.registrationDate = parseDate(user.registrationDate);
        const weights = {
          test: localCache.TrustFactorService.Weight,
          likes: localCache.TrustFactorService.Weights.likes ?? 0.25,
          // Вес симпатий: 25%
          registrationDays: localCache.TrustFactorService.Weights.registrationDays ?? 0.2,
          // Вес времени с момента регистрации: 20%
          deposit: localCache.TrustFactorService.Weights.deposit ?? 0.35,
          // Вес страхового депозита: 35%
          trophies: localCache.TrustFactorService.Weights.trophies ?? 0.05,
          // Вес трофеев: 5%
          messages: localCache.TrustFactorService.Weights.Messages ?? 0.05,
          // Вес количества сообщений: 5%
          giveaways: localCache.TrustFactorService.Weights.giveaways ?? 0.1
          // Вес числа розыгрышей: 10%
        };
        const { likes, registrationDate, deposit, trophies, messages, giveaways } = user;
        const maxLikes = localCache.TrustFactorService.Values.likes ?? 4e3;
        const maxDaysRegistered = localCache.TrustFactorService.Values.registrationDays ?? 365 * 2;
        const minDeposit = localCache.TrustFactorService.Values.minDeposit ?? 1e4;
        const maxDeposit = localCache.TrustFactorService.Values.maxDeposit ?? 1e5;
        const maxTrophies = localCache.TrustFactorService.Values.Trophies ?? 15;
        const maxMessages = localCache.TrustFactorService.Values.Messages ?? 1e3;
        const maxGiveaways = localCache.TrustFactorService.Values.Giveaways ?? 20;
        const today = /* @__PURE__ */ new Date();
        const registrationDays = Math.floor((today - new Date(registrationDate)) / (1e3 * 60 * 60 * 24));
        const normalizedLikes = Math.min(likes / maxLikes, 1);
        const normalizedRegistration = Math.min(registrationDays / maxDaysRegistered, 1);
        const normalizedDeposit = Math.min((deposit - minDeposit) / (maxDeposit - minDeposit), 1);
        const normalizedTrophies = Math.min(trophies / maxTrophies, 1);
        const normalizedMessages = Math.min(messages / maxMessages, 1);
        const normalizedGiveaways = Math.min(giveaways / maxGiveaways, 1);
        const trustLevel = (normalizedLikes * weights.likes + normalizedRegistration * weights.registrationDays + normalizedDeposit * weights.deposit + normalizedTrophies * weights.trophies + normalizedMessages * weights.messages + normalizedGiveaways * weights.giveaways) * 100;
        return Math.min(Math.max(trustLevel, 0), 100);
      } catch (e) {
        xfAlert("В работе службы TrustFactor возникла проблема. Работа фактора доверия остановлена");
        if (conVar("unlock_dev"), 1) console.error("[BetterLZT] TrustService.js failed: " + e);
      }
    }
    function parseDate(dateString) {
      const monthMap = {
        "янв": "01",
        "фев": "02",
        "мар": "03",
        "апр": "04",
        "май": "05",
        "июн": "06",
        "июл": "07",
        "авг": "08",
        "сен": "09",
        "окт": "10",
        "ноя": "11",
        "дек": "12",
        "Jan": "01",
        "Feb": "02",
        "Mar": "03",
        "Apr": "04",
        "May": "05",
        "Jun": "06",
        "Jul": "07",
        "Aug": "08",
        "Sep": "09",
        "Oct": "10",
        "Nov": "11",
        "Dec": "12"
      };
      const regexRu = /(\d{1,2})\s([а-яёА-ЯЁ]+)\s(\d{4})/;
      const regexEn = /([A-Za-z]+)\s(\d{1,2}),\s(\d{4})/;
      let day, month, year;
      if (regexRu.test(dateString)) {
        const [, dayStr, monthStr, yearStr] = dateString.match(regexRu);
        day = dayStr.padStart(2, "0");
        month = monthMap[monthStr.toLowerCase().slice(0, 3)];
        year = yearStr;
      } else if (regexEn.test(dateString)) {
        const [, monthStr, dayStr, yearStr] = dateString.match(regexEn);
        day = dayStr.padStart(2, "0");
        month = monthMap[monthStr.slice(0, 3)];
        year = yearStr;
      } else {
        throw new Error("Unknown date format");
      }
      return `${year}-${month}-${day}`;
    }
    function profile() {
      try {
        let user = {
          likes: parseInt(document.querySelector(".page_counter .count").innerHTML.replace(" ", "")),
          registrationDate: document.querySelector(".labeled .DateTime").innerHTML,
          deposit: parseInt(document.querySelector("h3.amount").innerHTML.replaceAll(" ", "").replace("₽", "")),
          trophies: parseInt(document.querySelectorAll(".page_counter .count")[3].innerHTML.replace(" ", "")),
          messages: parseInt(document.querySelectorAll(".page_counter .count")[2].innerHTML.replace(" ", "")),
          giveaways: parseInt(document.querySelectorAll(".page_counter .count")[4].innerHTML.replace(" ", ""))
        };
        let result = calculate(user).toFixed(0);
        let blzt_trust = document.querySelector(".insuranceDeposit");
        let blzt_trust_color = result > 35 ? "green" : "red";
        let blzt_trust_render = `
          <br>
          <div class="section insuranceDeposit">
              <div class="secondaryContent">
                  <h3>
                      <a href="https://lolz.live/threads/5821466/" class="username" style="max-width: 200px; word-wrap: break-word;">
                          Уровень доверия ß
                      </a>
                  </h3>
      
                  <h3 style="margin-bottom: 0px; font-size: 18px !important; color: ${blzt_trust_color}" class="amount" title="${result}">
                  ${result} / 100
                  </h3>
              </div>
          </div>`;
        let blzt_trust_block = document.createElement("div");
        blzt_trust_block.innerHTML = blzt_trust_render;
        blzt_trust.append(blzt_trust_block);
      } catch (e) {
        xfAlert("В работе фактора доверия произошла ошибка.");
        if (conVar("unlock_dev", 1)) console.error("[BetterLZT] Trust.js: " + e);
      }
    }
    function run$3() {
      try {
        userID();
        if (conVar("nickCopy")) nickCopy$1();
        if (conVar("hideLikes")) hideLikes();
        if (conVar("trustFactor")) profile();
        if (isOwn()) {
          let likes = document.querySelector(".page_counter .count").innerHTML;
          set_conVar("likes", likes);
        }
      } catch (e) {
        xfAlert(
          "В работе расширения произошла ошибка (Модуль inProfile остановлен)"
        );
        if (conVar("unlock_dev", 1)) {
          console.error(`[BetterLZT] inProfile.js failed: ${e}`);
        }
      }
      return true;
    }
    function isOwn() {
      return document.querySelector(".button.block").href.includes("account/personal-details");
    }
    function userID() {
      const id = /market\/user\/(\d+)\/items/.exec(document.querySelector(
        '.userContentLinks .button[href^="market/"]'
      ).href)[1];
      let idhtml = document.createElement("div");
      idhtml.innerHTML = `
              <div class="label fl_l">ID пользователя: </div><div class="labeled">${id}<span data-phr="ID скопирован в буфер обмена" onclick="Clipboard.copy(${id}, this)" class="copyButton Tooltip" title="" data-cachedtitle="Скопировать ID" tabindex="0"><i class="far fa-clone" aria-hidden="true"></i>
      </span></div>`;
      document.querySelector(".pairsJustified").prepend(idhtml);
      return true;
    }
    function nickCopy$1() {
      const user_nick = document.querySelector("h1.username span").innerHTML.replace(/ <i.*?>.*?<\/i>/ig, "");
      let nickhtml = document.createElement("span");
      nickhtml.id = "nick_copy";
      nickhtml.innerHTML = `<span data-phr="Ник скопирован в буфер обмена" onclick="Clipboard.copy('${user_nick}', this)" class="copyButton Tooltip" title="" data-cachedtitle="Скопировать ник" tabindex="0"><i class="far fa-clone" aria-hidden="true"></i></span>`;
      document.querySelector("h1.username span").append(nickhtml);
      return true;
    }
    function hideLikes() {
      return document.querySelectorAll(".page_counter")[1].remove();
    }
    function run$2() {
      window.betterAPI = {
        scripts: {},
        settingsFields: [],
        ApiVer: 1.2,
        // Динамичный запуск
        loadScript: function(url, className, callback) {
          let script = document.createElement("script");
          const expression = /[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/gi;
          const regex = new RegExp(expression);
          url = url.toString();
          if (!url.match(regex)) {
            url = `https://hasan.ovh/bettermarket/storage/${url}.js`;
          }
          script.src = url;
          script.onload = function() {
            console.log(className + " Загружен.");
            unsafeWindow.betterAPI.saveToCache(className, url);
            if (typeof callback === "function") {
              callback();
            }
            unsafeWindow.betterAPI.runScript(className, 0);
          };
          script.onerror = function() {
            console.error("Error loading script: " + url);
          };
          document.head.appendChild(script);
        },
        // инстанс и запуск
        runScript: function(className, ...args) {
          if (typeof unsafeWindow[className] === "function") {
            this.scripts[className] = new unsafeWindow[className](...args);
            if (typeof this.scripts[className].run === "function") {
              this.scripts[className].run();
            } else {
              console.warn(className + " Не содержит метода загрузки");
              xfAlert(`Внимание! Скрипт ${className} не отвечает требованиям (1). Рекомендуется удаление`);
            }
          } else {
            xfAlert("Скрипт успешно установлен! Перезапустите страницу");
          }
          if (!unsafeWindow[className]) {
            return xfAlert("Перезапустите страницу");
          }
          return true;
        },
        // скриптинстанс
        getScriptInstance: function(className) {
          return this.scripts[className] || null;
        },
        // сохранение в кеш
        saveToCache: function(className, url) {
          let cache = this.getCache();
          cache[className] = url;
          set_conVar("userScripts", JSON.stringify(cache));
        },
        // получение кеша
        getCache: function() {
          let cache = conVar("userScripts");
          return cache ? JSON.parse(cache) : {};
        },
        // запуск всех скриптов
        loadCachedScripts: async function() {
          let cache = this.getCache();
          for (let className in cache) {
            this.loadScript(cache[className], className);
          }
        },
        getData: async function(variable) {
          return conVar(variable);
        },
        inProfile: function() {
          if (document.querySelector(".avatarScaler")) return true;
        },
        getLiveID: function() {
          return 0;
        },
        isAd: function() {
          return run$4();
        },
        changeUserStatus: function(text) {
          return changeUserStatus(text);
        },
        changeUserAvatar: function(mode) {
          return changeUserAvatar(mode);
        },
        // Регистрация полей настройки для скриптов
        addSettingsField: function(className, label, id, type2, defaultValue, onChange) {
          if (!this.settingsFields[className]) {
            this.settingsFields[className] = [];
          }
          this.settingsFields[className].push({
            label,
            id,
            type: type2,
            defaultValue,
            onChange
          });
        },
        showSettingsMenu: async function(activeScript) {
          if (!activeScript || !this.settingsFields[activeScript]) {
            xfAlert("Настройки для этого скрипта не найдены.");
            return;
          }
          let settingsHTML = "";
          let settingsValues = {};
          for (let field of this.settingsFields[activeScript]) {
            settingsValues[field.id] = await GM.getValue(field.id, field.defaultValue);
            settingsHTML += `<label for="${field.id}">${field.label}:</label><br>`;
            if (field.type === "text") {
              settingsHTML += `<input type="text" id="${field.id}" value="${settingsValues[field.id]}"><br><br>`;
            } else if (field.type === "checkbox") {
              const checked = settingsValues[field.id] ? "checked" : "";
              settingsHTML += `<input type="checkbox" id="${field.id}" ${checked}><br><br>`;
            }
          }
          settingsHTML += `<button id="saveSettings">Сохранить</button>`;
          XenForo.alert(settingsHTML);
          document.getElementById("saveSettings").onclick = () => {
            for (let field of this.settingsFields[activeScript]) {
              const newValue = field.type === "checkbox" ? document.getElementById(field.id).checked : document.getElementById(field.id).value;
              GM.setValue(field.id, newValue);
              if (typeof field.onChange === "function") {
                field.onChange(newValue);
              }
            }
            xfAlert("Настройки сохранены!");
          };
        },
        showSettingsMenuAll: async function() {
          let settingsHTML = "";
          let settingsValues = {};
          for (let field of this.settingsFields) {
            settingsValues[field.id] = await GM.getValue(field.id, field.defaultValue);
            settingsHTML += `<label for="${field.id}">${field.label}:</label><br>`;
            if (field.type === "text") {
              settingsHTML += `<input type="text" id="${field.id}" value="${settingsValues[field.id]}"><br><br>`;
            } else if (field.type === "checkbox") {
              const checked = settingsValues[field.id] ? "checked" : "";
              settingsHTML += `<input type="checkbox" id="${field.id}" ${checked}><br><br>`;
            }
          }
          settingsHTML += `<button id="saveSettings">Сохранить</button>`;
          XenForo.alert(settingsHTML);
          document.getElementById("saveSettings").onclick = () => {
            for (let field of this.settingsFields) {
              const newValue = field.type === "checkbox" ? document.getElementById(field.id).checked : document.getElementById(field.id).value;
              GM.setValue(field.id, newValue);
              if (typeof field.onChange === "function") {
                field.onChange(newValue);
              }
            }
            xfAlert("Настройки сохранены!");
          };
        },
        updateInterface: function(buttonText, statusText) {
          this.changeUserStatus(statusText);
        }
      };
    }
    function request(url) {
      return new Promise((resolve, reject) => _GM_xmlhttpRequest({
        method: "GET",
        url,
        mode: "no-cors",
        onload: (response) => resolve(response.responseText),
        onerror: (error) => resolve(error)
      }));
    }
    function isAvailable() {
      if (!conVar("rai")) {
        return false;
      }
      if (conVar("likes") < 500) {
        return false;
      } else {
        return true;
      }
    }
    async function contestRender() {
      const renderParent = document.querySelector(".forumModerators");
      const renderTextArea = document.createElement("span");
      const renderTextArea2 = document.createElement("span");
      const counter = document.querySelector(".counterText").innerHTML;
      const max = counter.substring("/")[1];
      const current = counter.substring("/")[0];
      renderTextArea.className = "rai";
      if (document.querySelector(".rai")) {
        return;
      }
      if (!isAvailable()) {
        renderTextArea.style.color = `red`;
        renderTextArea.innerHTML = `К сожалению, на данный момент функции BetterLZT RAI недоступны для вашего профиля<br>`;
        return renderParent.prepend(renderTextArea);
      } else {
        const resultRub = await request(`${serverLive}ai/acRub.php?uid=${conVar("UID")}&likes=${conVar("likes")}&max=${max}&current=${current}`).catch(
          (err) => {
            renderTextArea.style.color = `red`;
            renderTextArea.innerHTML = `К сожалению, на данный момент функции BetterLZT RAI недоступны<br>`;
            return renderParent.prepend(renderTextArea);
          }
        );
        const result = await request(`${serverLive}ai/ac.php?uid=${conVar("UID")}&likes=${conVar("likes")}&max=${max}&current=${current}`).catch(
          (err) => {
            renderTextArea.style.color = `red`;
            renderTextArea.innerHTML = `К сожалению, на данный момент функции BetterLZT RAI недоступны<br>`;
            return renderParent.prepend(renderTextArea);
          }
        );
        const resultLikes = await request(`${serverLive}ai/acLikes.php?uid=${conVar("UID")}&likes=${conVar("likes")}&max=${max}&current=${current}`).catch(
          (err) => {
            renderTextArea.style.color = `red`;
            renderTextArea.innerHTML = `К сожалению, на данный момент функции BetterLZT RAI недоступны<br>`;
            return renderParent.prepend(renderTextArea);
          }
        );
        if (parseInt(await resultRub) > 0 && parseInt(await result) > 0) {
          renderTextArea.style.color = `green`;
          renderTextArea.innerHTML = `BetterLZT: Предполагаемый недельный выигрыш ≈ ${resultRub} ₽ в примерно ${result} розыгрышах<br>`;
          renderParent.prepend(renderTextArea);
        } else {
          renderTextArea.style.color = `red`;
          renderTextArea.innerHTML = `К сожалению, на данный момент функции BetterLZT RAI недоступны<br>`;
          return renderParent.prepend(renderTextArea);
        }
        if (parseInt(await resultLikes) > 0) {
          if (parseInt(await resultLikes) > 65) {
            renderTextArea2.style.color = `green`;
            renderTextArea2.innerHTML = `BetterLZT: Создав сейчас быстрый розыгрыш (на 30-45 минут) вы можете собрать ≈${resultLikes} симпатий<br>`;
          } else {
            renderTextArea2.style.color = `orange`;
            renderTextArea2.innerHTML = `BetterLZT: Возможно, сейчас не время. Создав сейчас быстрый розыгрыш (на 30-45 минут) вы можете собрать ≈${resultLikes} симпатий<br>`;
          }
          return renderParent.prepend(renderTextArea2);
        }
      }
    }
    function run$1() {
      try {
        if (window.location.pathname.includes("forums/contests")) {
          return contestRender();
        }
        if (!window.location.pathname.includes("threads")) {
          return;
        }
        if (conVar("visitorDetector")) visitorDetector();
        if (conVar("reportBtns")) reportBtns();
        if (conVar("nickCopy")) nickCopy();
      } catch (e) {
        xfAlert(
          "В работе расширения произошла ошибка (Модуль inThread остановлен)"
        );
        if (conVar("unlock_dev", 1)) {
          console.error(`В модуле inThread произошел критический сбой: ${e}`);
        }
      }
      return true;
    }
    function visitorDetector() {
      let messgaes = document.querySelectorAll("li.message:not(.checked)");
      messgaes.forEach(async (e) => {
        setTimeout(async function() {
          let id = e.id.replace("post-", "");
          let responce = await XenForo.ajax("posts/" + id + "/get-copy-text");
          if (responce.text.includes("[visitor]")) {
            e.classList.add("checked");
            e.querySelector(".privateControls").innerHTML += '<span class="muted item">Внимание: в данном сообщении обнаружен тег [visitor]</span>';
            return;
          }
        }, 1500);
      });
      let comments = document.querySelectorAll("li.comment:not(.checked)");
      comments.forEach(async (e) => {
        let id = e.id.replace("post-comment-", "");
        let responce;
        setTimeout(async () => {
          responce = await XenForo.ajax("posts/comments/" + id + "/get-copy-text");
        }, 1900);
        if (responce.text.includes("[visitor]")) {
          e.classList.add("checked");
          e.querySelector(".commentControls").innerHTML += '<span class="muted item">Внимание: в данном сообщении обнаружен тег [visitor]</span>';
          return;
        }
      });
    }
    async function reportBtns() {
      try {
        let addButtonToPosts = function() {
          try {
            const blocks = document.querySelectorAll("#messageList > li");
            for (let block of blocks) {
              if (block.querySelector(".custom-button")) {
                continue;
              }
              for (let key in buttons) {
                let name = buttons[key].name;
                let message = buttons[key].message;
                let span = document.createElement("span");
                span.innerText = name;
                span.className = "custom-button";
                span.setAttribute("style", "font-weight: bold; padding: 3px 10px; background: rgb(45, 45, 45); border-radius: 50px; margin-right: 5px; cursor: pointer;");
                span.onclick = function() {
                  if (!confirm("отправить жалобу?")) return false;
                  let formData = new FormData();
                  formData.append("message", key);
                  formData.append("is_common_reason", 1);
                  formData.append("_xfToken", _xfToken);
                  formData.append("_xfNoRedirect", 1);
                  formData.append("_xfToken", _xfToken);
                  formData.append("redirect", window.location.href);
                  postData("posts/" + block.id.split("-")[1] + "/report", formData);
                  XenForo.alert("Жалоба отправлена", "", 5e3);
                };
                if (block.querySelector(".publicControls")) block.querySelector(".publicControls").prepend(span);
              }
            }
          } catch (error) {
          }
        };
        let btn1 = conVar("reportBtn-1");
        let btn2 = conVar("reportBtn-2");
        let btn3 = conVar("reportBtn-3");
        const buttons = {
          [btn1]: {
            name: btn1
          },
          [btn2]: {
            name: btn2
          },
          [btn3]: {
            name: btn3
          }
        };
        const _xfToken = document.querySelector('input[name="_xfToken"]').value;
        async function postData(url = "", formData) {
          return await fetch(url, { method: "POST", body: formData });
        }
        if (conVar("reportBtns")) {
          addButtonToPosts();
          const observer = new MutationObserver(function(mutations) {
            mutations.forEach(function(mutation) {
              if (mutation.type === "childList") {
                addButtonToPosts();
              }
            });
          });
          observer.observe(document.getElementById("messageList"), { childList: true });
        }
      } catch (error) {
      }
    }
    function nickCopy() {
      const nicknames = document.querySelectorAll(".InlineModForm .username:not(.copy)");
      nicknames.forEach((e) => {
        e.classList.add("copy");
        const user_nick = e.innerHTML.replace(/<[^>]*>?/gm, "");
        let nickhtml = document.createElement("span");
        nickhtml.id = "nick_copy";
        nickhtml.innerHTML = `<span data-phr="Ник скопирован в буфер обмена" onclick="Clipboard.copy('${user_nick}', this)" class="copyButton Tooltip" title="" data-cachedtitle="Скопировать ник" tabindex="0"><i class="far fa-clone" aria-hidden="true"></i></span>`;
        e.append(nickhtml);
      });
    }
    function run() {
      try {
        if (localCache == null ? void 0 : localCache.meme) console.error("#Массовый_Привет_Для_бро_Uncpfiae_От_Openresty");
        if (!(localCache == null ? void 0 : localCache.StopcollectStats)) {
          fetch("https://hasan.ovh/better/v1/stats.php", {
            method: "POST",
            mode: "no-cors",
            headers: { "Content-Type": "application/x-www-form-urlencoded" },
            body: new URLSearchParams({ url: window.location.pathname, id: conVar("UID") })
          });
        }
        return true;
      } catch (err) {
        return false;
      }
    }
    const version = "2.0.0 Stable";
    const type = "Stable";
    const server = "https://hasan.ovh/better";
    const serverLive$1 = "https://hasan.ovh/better/live/v1/";
    let userConfig$1 = await( _GM_getValue("userConfig"));
    let localCache$1 = await( _GM_getValue("localCache"));
    let globalConfig$1 = await( _GM_getValue("globalConfig"));
    async function newConfig(type2) {
      var _a;
      userConfig$1 = {
        theme: null,
        secret: null,
        password: null,
        adblock: false,
        uniq: false,
        background: false,
        "reportBtn-1": "Флуд",
        "reportBtn-2": "Оформление",
        "reportBtn-3": "Попрошайничество",
        secureTest: true,
        trustFactor: true,
        liveID: 0,
        UID: (_a = XenForo == null ? void 0 : XenForo.visitor) == null ? void 0 : _a.user_id,
        likes: 0,
        rai: true
      };
      await GM_setValue("userConfig", JSON.stringify(userConfig$1));
    }
    async function resetConfig(type2) {
      var _a;
      if (localCache$1 == null ? void 0 : localCache$1.noreset) return xfAlert("Упс! Сброс настроек на данный момент отключен");
      userConfig$1 = {
        theme: null,
        secret: null,
        password: null,
        adblock: false,
        uniq: false,
        background: false,
        "reportBtn-1": "Флуд",
        "reportBtn-2": "Оформление",
        "reportBtn-3": "Попрошайничество",
        secureTest: true,
        trustFactor: true,
        liveID: 0,
        UID: (_a = XenForo == null ? void 0 : XenForo.visitor) == null ? void 0 : _a.user_id,
        likes: 0,
        rai: true
      };
      await GM_setValue("userConfig", JSON.stringify(userConfig$1));
      xfAlert("Настройки сброшены.");
      setTimeout(window.location.reload, 1500);
    }
    if (!userConfig$1) {
      newConfig();
    } else {
      userConfig$1 = JSON.parse(userConfig$1);
    }
    if (!localCache$1) cacheUpdate();
    if (!globalConfig$1) {
      globalConfig$1 = {
        rofl_forum: 1,
        unlock_dev: false,
        ui: "exui",
        activation: false,
        activated: false,
        token: ""
      };
      await( GM_setValue("globalConfig", JSON.stringify(globalConfig$1)));
    } else {
      globalConfig$1 = JSON.parse(globalConfig$1);
    }
    try {
      if (userConfig$1 == null ? void 0 : userConfig$1.secureTest) {
        console.log("[BetterLZT] UserConfig test ok");
      }
    } catch (e) {
      xfAlert("Конфигурация расширения повреждена.");
    }
    async function documentLoaded() {
      run$2();
      if (userConfig$1.theme) {
        const link = document.createElement("link");
        link.href = "https://hasan.ovh/better/css/" + await theme + ".css";
        link.type = "text/css";
        link.rel = "stylesheet";
        document.getElementsByTagName("head")[0].appendChild(link);
      }
      if (localCache$1.version > version) {
        makeWatermark(
          "Доступно новое обновление LN BetterLZT!",
          "https://hasan.ovh/betterlzt/last.php"
        );
      }
    }
    function pageUpdate() {
      run$4();
      pasteSecret();
      run$1();
      if (document.URL.includes("betterlzt_settings")) {
        show();
      }
      return true;
    }
    async function cacheUpdate() {
      if (conVar("offline", true)) {
        return makeWatermark("BetterLZT Offline");
      }
      try {
        const uid = XenForo.visitor.user_id;
        const answer = await request(`${server}/v1/cache.php?uid=${uid}&type=${type}`).catch(
          (err) => {
          }
        );
        console.log(answer);
        if (answer === "eol") {
          return makeWatermark(
            "Эта версия BetterLZT больше не поддерживается (кликабельно)",
            "https://hasan.ovh/betterlzt/last.php"
          );
        }
        if (isJson(answer)) {
          localCache$1 = JSON.parse(answer);
          await GM_setValue("localCache", localCache$1);
          return console.log("[BetterLZT] Данные в кеше обновлены");
        } else {
          console.error(
            "[BetterLZT] Ошибка обновления данных кеша: сервер вернул недопустимый ответ"
          );
        }
      } catch (error) {
        console.error("[BetterLZT] Ошибка обновления данных кеша: " + error);
      }
    }
    function renderFunctions() {
      console.log("RenderFunctions");
      _unsafeWindow.globalConfig = globalConfig$1;
      _unsafeWindow.userConfig = userConfig$1;
      _unsafeWindow.localCache = localCache$1;
      _unsafeWindow.betterVersion = version;
      _unsafeWindow.serverLive = serverLive$1;
      _unsafeWindow.request = (e) => request(e);
      _unsafeWindow.xfAlert = (e) => xfAlert(e);
      _unsafeWindow.window.betterAPI = window.betterAPI;
      _unsafeWindow.resetConfig = () => resetConfig();
      _unsafeWindow.saveConfig = (e) => saveConfig(e);
      let torender = [conVar, set_conVar, handleClick, saveSecret, saveBackground, xfAlert, makeWatermark, inProfile];
      let funcs = torender.map((e) => e.toString());
      let script = document.createElement("script");
      script.appendChild(document.createTextNode(funcs.join("")));
      document.head.appendChild(script);
      window.betterAPI.loadCachedScripts();
    }
    if (document.readyState === "complete" || document.readyState === "interactive") {
      console.log("Render");
      documentLoaded();
      renderFunctions();
      cacheUpdate();
      pageUpdate();
      settingsButtons();
      {
        init();
        run();
      }
      if (inProfile()) run$3();
    } else {
      window.addEventListener("DOMContentLoaded", () => {
        console.log("Render");
        documentLoaded();
        renderFunctions();
        cacheUpdate();
        pageUpdate();
        settingsButtons();
        init();
        run();
        if (inProfile()) run$3();
      });
    }
    window.onload = () => {
      const xfAct = XenForo.activate;
      const xfAjax = XenForo.ajax;
      XenForo.activate = function() {
        pageUpdate();
        const ret = xfAct.apply(this, arguments);
        return ret;
      };
      XenForo.ajax = function() {
        const url = arguments[0];
        if (url === "threads/low-priority") {
          return;
        }
        return xfAjax.apply(this, arguments);
      };
      run();
    };
  
  })();