Lolzteam Multiaccount Finder

Your assistant in finding scammers on the forum

当前为 2023-03-17 提交的版本,查看 最新版本

// ==UserScript==
// @name         Lolzteam Multiaccount Finder
// @version      0.5.1
// @description  Your assistant in finding scammers on the forum
// @author       vuchaev2015
// @match        https://zelenka.guru/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru
// @grant        none
// @namespace http://tampermonkey.net/
// ==/UserScript==


// Находим элемент с ID AccountMenu
var accountMenu = document.getElementById("AccountMenu");

// Создаем новый пункт списка
var newListItem = document.createElement("li");
var buttonId = `lmfsettings`; // generate a unique button ID
newListItem.innerHTML = `<a href="javascript:void(0)" id="${buttonId}">Multiaccount Finder</a>`;

// Добавляем новый пункт в список
var linksList = accountMenu.querySelector(".blockLinksList");
linksList.appendChild(newListItem);

// Добавляем обработчик события клика на новый пункт меню
var multiaccountFinderButton = document.getElementById(buttonId);
multiaccountFinderButton.addEventListener("click", function (event) {
    event.preventDefault();
    openSettings();
});

// Меню с настройками
function openSettings() {
    var unixtime = Math.floor(Date.now() / 1000); // Получаем текущее время в секундах

    var isCheckedProfile = localStorage.getItem("autocheck-profile") === "true";
    var chkboxProfile = '<input type="checkbox" id="autocheck-profile-' + unixtime + '" name="autocheck-profile-' + unixtime + '" ' + (isCheckedProfile ? 'checked="checked" ' : '') + 'value="1"> Автоматическая проверка в профилях<div></div>';

    var isCheckedMiniProfile = localStorage.getItem("autocheck-mini-profile") === "true";
    var chkboxMiniProfile = '<div> <input type="checkbox" id="autocheck-mini-profile-' + unixtime + '" name="autocheck-mini-profile-' + unixtime + '" ' + (isCheckedMiniProfile ? 'checked="checked" ' : '') + 'value="1"> Автоматическая проверка в мини-профилях </div>';

    var content = chkboxProfile  + chkboxMiniProfile;
    XenForo.alert(content, 'Lolzteam Multiaccount Finder');

    var checkboxProfile = document.getElementById("autocheck-profile-" + unixtime);
    checkboxProfile.addEventListener("change", function() {
        localStorage.setItem("autocheck-profile" , checkboxProfile.checked);
        console.log(localStorage); // Выводим содержимое localStorage в консоль
    });

    var checkboxMiniProfile = document.getElementById("autocheck-mini-profile-" + unixtime);
    checkboxMiniProfile.addEventListener("change", function() {
        localStorage.setItem("autocheck-mini-profile" , checkboxMiniProfile.checked);
        console.log(localStorage); // Выводим содержимое localStorage в консоль
    });
}
// Добавляем кнопку Multiaccount Finder в профиле и мини профиле если присутствует кнопка shared-ips
function checkMenuItems() {
    let menuItems = document.querySelectorAll(".Menu a[href*='/shared-ips']");

    menuItems.forEach(function (item) {
        let menu = item.parentNode.parentNode; // select the parent of the parent element (ul)
        if (!menu.hasAttribute("data-multiaccount-finder")) {
            let newMenuItem = document.createElement("li");
            let buttonId = `multiaccountFinderButton-${Date.now()}`; // generate a unique button ID
            let lastid = `${buttonId}`
            newMenuItem.innerHTML = `<a href="javascript:void(0)" id="${buttonId}">Multiaccount Finder</a>`;
            menu.appendChild(newMenuItem);
            let currentUrl = window.location.href;
            currentUrl = item.getAttribute("href");

            if (localStorage.getItem("autocheck-profile") === 'true') { // проверка включенного авточека в обычном профиле
                const gifElement = document.createElement('img');
                const gifId = `gif-profile`;
                gifElement.id = gifId;
                gifElement.src = 'https://cdn.lowgif.com/full/631c400b903c03d9-loading-gif-wpfaster.gif';
                gifElement.width = '32';
                gifElement.height = '32';
                gifElement.title = ''
                {
                    const countsModule = document.querySelectorAll('.counts_module');
                    countsModule.forEach(function(module){
                        let profilecounter = module.parentNode.parentNode;
                        if (!profilecounter.hasAttribute("data-multiaccount-finder")) {
                            profilecounter.setAttribute("data-multiaccount-finder", "added");
                            const element = document.getElementById(lastid); // находим элемент по id
                            if (element) { // проверяем, что элемент найден
                                element.remove(); // удаляем элемент
                            }
                            module.appendChild(gifElement);
                            console.log(1)
                            module.appendChild(gifElement);
                            checkUser(`${currentUrl}`, `gif-profile`);
                        }
                    });

                }
            }

            if (localStorage.getItem("autocheck-mini-profile") === 'true') { // проверка включенного авточека в мини профиле
                const countsModule = document.querySelectorAll('.userStatCounters');
                const gifElement = document.createElement('img');
                const gifId = `gif-profile-${Date.now()}`;
                gifElement.id = gifId;
                gifElement.src = 'https://cdn.lowgif.com/full/631c400b903c03d9-loading-gif-wpfaster.gif';
                gifElement.width = '24';
                gifElement.height = '24';
                gifElement.title = '';

                // перебираем элементы userStatCounters
                countsModule.forEach(function(module){
                    let miniprofileMenu = module.parentNode.parentNode;
                    if (!miniprofileMenu.hasAttribute("data-multiaccount-finder")) {
                        miniprofileMenu.setAttribute("data-multiaccount-finder", "added");
                        const element = document.getElementById(lastid); // находим элемент по id
                            if (element) { // проверяем, что элемент найден
                                element.remove(); // удаляем элемент
                            }
                        module.appendChild(gifElement);
                        console.log(1)
                        checkUser(`${currentUrl}`, gifId);
                    }
                });
            }


            let multiaccountFinderButton = document.getElementById(buttonId);
            menu.setAttribute("data-multiaccount-finder", "added");
            if (multiaccountFinderButton) {
                multiaccountFinderButton.addEventListener("click", function (event) {
                    event.preventDefault();
                    checkUser(`${currentUrl}`);
                });
            }
        }
    });
}
setInterval(checkMenuItems, 100);

// Проверяем, начинается ли текущий URL с "https://zelenka.guru/online/?type=registered"
if (window.location.href.indexOf("https://zelenka.guru/online/?type=registered") === 0) {
    const members = document.querySelectorAll('.member');
    let index = 0;
    const checkNextMember = async () => {
        if (index >= members.length) return;
        const member = members[index];
        const usernameLink = member.querySelector('a.username');
        const usernameHref = usernameLink.getAttribute('href');
        const userStatCounters = member.querySelector('.userStatCounters');
        const gifElement = document.createElement('img');
        const gifId = `gif-${index}`;
        gifElement.id = gifId;
        gifElement.src = 'https://cdn.lowgif.com/full/631c400b903c03d9-loading-gif-wpfaster.gif';
        gifElement.width = '24';
        gifElement.height = '24';
        userStatCounters.appendChild(gifElement);
        await checkUser(`https://zelenka.guru/${usernameHref}shared-ips`, gifId);
        index++;
        checkNextMember();
    }
    checkNextMember();
}

function xenforoLogAndAlert(text, title) {
    console.log(text)
    XenForo.alert(`${text}`, `${title}`)
}

function checkUser(link, gifId) {

    console.log(gifId)
    console.log(`${link.replace(/(https:\/\/.*?)\/\//g, '$1/')}`)
    return fetch(`${link.replace(/(https:\/\/.*?)\/\//g, '$1/')}`)
        .then(response => response.text())
        .then(data => {
        const parser = new DOMParser();
        const htmlDocument = parser.parseFromString(data, "text/html");
        const userLogs = htmlDocument.getElementsByClassName("userLog");
        let bannedUsersCount = 0;
        let nonBannedUsersCount = 0;
        const numUserLogs = userLogs.length;
        console.log(userLogs)
        console.log(numUserLogs);
        const nameEl = htmlDocument.querySelector('a.crumb[href^="https://zelenka.guru/"] span');
        const name = nameEl ? nameEl.textContent.trim() : "";

        const gifElement = document.getElementById(gifId);
        if (!name) {
            //console.log("Name not found. Skipping further checks.");
            if (gifElement) {
                gifElement.src = 'https://i.imgur.com/wqXWudH.png'; // подгружаем иконку ошибки с imgur
            }
            throw new Error("Name not found");
        }

        for (let i = 0; i < userLogs.length; i++) {
            const spans = userLogs[i].getElementsByTagName("span");
            let isBanned = false;
            for (let j = 0; j < spans.length; j++) {
                if (spans[j].classList.contains("banned")) {
                    bannedUsersCount++;
                    isBanned = true;
                    break;
                }
            }
            if (!isBanned) {
                nonBannedUsersCount++;
            }
        }

        const totalUsers = bannedUsersCount + nonBannedUsersCount;
        const bannedPercent = totalUsers ? ((bannedUsersCount / totalUsers) * 100).toFixed(2) : 0;
        const nonBannedPercent = totalUsers ? ((nonBannedUsersCount / totalUsers) * 100).toFixed(2) : 0;

        const scammer = `${name} - мошенник\n% заблокированных: ${bannedPercent}\n% не заблокированных: ${nonBannedPercent}\nОбщее количество пользователей в общих IP: ${numUserLogs}`
        const mbscammer = `${name} - возможно мошенник\n% заблокированных: ${bannedPercent}\n% не заблокированных: ${nonBannedPercent}\nОбщее количество пользователей в общих IP: ${numUserLogs}`
        const vpn = `${name} - использует VPN\n% заблокированных: ${bannedPercent}\n% не заблокированных: ${nonBannedPercent}\nОбщее количество пользователей в общих IP: ${numUserLogs}`
        const mbvpn = `${name} - возможно использует VPN\n% заблокированных: ${bannedPercent}\n% не заблокированных: ${nonBannedPercent}\nОбщее количество пользователей в общих IP: ${numUserLogs}`
        const cleaned = `${name} - пользователи по заданным параметрам не найдены`
        const multiaccount = `${name} - мультиаккаунт\n% заблокированных: ${bannedPercent}\n% не заблокированных: ${nonBannedPercent}\nОбщее количество пользователей в общих IP: ${numUserLogs}`

        const template = `https://zelenka.guru/forums/801/create-thread?title=%D0%96%D0%B0%D0%BB%D0%BE%D0%B1%D0%B0+%D0%BD%D0%B0+%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F+${name}&message=1.+%D0%9D%D0%B8%D0%BA%D0%BD%D0%B5%D0%B9%D0%BC+%D0%BD%D0%B0%D1%80%D1%83%D1%88%D0%B8%D1%82%D0%B5%D0%BB%D1%8F+%D0%B8+%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0+%D0%BD%D0%B0+%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D1%8C%3A+${link.replace(`/shared-ips`, ``)}%2F%0A2.+%D0%9A%D1%80%D0%B0%D1%82%D0%BA%D0%BE%D0%B5+%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5+%D0%B6%D0%B0%D0%BB%D0%BE%D0%B1%D1%8B%3A%0A3.+%D0%94%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%B0%3A`;

        if (htmlDocument.body.textContent.includes("Пользователей по заданным параметрам не найдено.") ||
            htmlDocument.body.textContent.includes("No matching users were found.")) {
            gifElement && (gifElement.src = 'https://i.imgur.com/i4OlWJk.png');
            gifElement && (gifElement.title = `${cleaned}`);
            !gifElement && xenforoLogAndAlert(`${cleaned}`, `Lolzteam Multiaccount Finder`);

        } else if (bannedUsersCount >= nonBannedUsersCount && bannedUsersCount !== 0) {
            if (gifElement) {
                gifElement.addEventListener('click', function() {
                    // при нажатии на красный треугольник доступ к быстрому созданию темы
                    window.location.href = `${template}`
                });
                gifElement.src = 'https://i.imgur.com/g5GxNHD.png';
                gifElement.style.cursor = 'pointer';
                gifElement.title = `${scammer}`
            } else {
                xenforoLogAndAlert(`${scammer}`, `Lolzteam Multiaccount Finder`);
            }

        } else if (nonBannedUsersCount > 15 && bannedUsersCount < nonBannedUsersCount / 3) {
            gifElement && (gifElement.src = 'https://i.imgur.com/o5qNA1o.png');
            gifElement && (gifElement.title = `${vpn}`);
            !gifElement && xenforoLogAndAlert(`${vpn}`, `Lolzteam Multiaccount Finder`);

        } else if (nonBannedUsersCount > 6 && nonBannedUsersCount <= 15 && bannedUsersCount < nonBannedUsersCount / 2) {
            gifElement && (gifElement.src = 'https://i.imgur.com/o5qNA1o.png');
            gifElement && (gifElement.title = `${mbvpn}`);
            !gifElement && xenforoLogAndAlert(`${mbvpn}`, `Lolzteam Multiaccount Finder`);

        } else if (bannedUsersCount > nonBannedUsersCount / 2) {
            if (gifElement) {
                gifElement.addEventListener('click', function() {
                    // при нажатии на красный треугольник доступ к быстрому созданию темы
                    window.location.href = `${template}` // редирект на создание жалобы Zelenka.guru
                });
                gifElement.src = 'https://i.imgur.com/g5GxNHD.png';
                gifElement.style.cursor = 'pointer';
                gifElement.title = `${mbscammer}`
            } else {
                xenforoLogAndAlert(`${mbscammer}`, `Lolzteam Multiaccount Finder`);
            }

        } else {
            gifElement && (gifElement.src = 'https://i.imgur.com/i4OlWJk.png');
            gifElement && (gifElement.title = `${multiaccount}`);
            !gifElement && xenforoLogAndAlert(`${multiaccount}`, `Lolzteam Multiaccount Finder`);
        }
    })
        .catch(error => console.error(error));
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址