LZT_Trophy

Отображение всех трофеев в профиле пользователя

// ==UserScript==
// @name         LZT_Trophy
// @namespace    https://gf.qytechs.cn/ru/users/1142494-llimonix
// @version      0.11
// @description  Отображение всех трофеев в профиле пользователя
// @author       llimonix
// @match        https://zelenka.guru/*
// @match        https://lolz.live/*
// @icon         https://cdn-icons-png.flaticon.com/512/2830/2830919.png
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    let pageCounter = $('.page_counter');

    if (pageCounter.length > 0) {
        let urlbase = window.location.hostname;
        let hrefValue = pageCounter.attr('href');
        let parts = hrefValue.replace('members/', '').split("/");
        let value = parts[0];
        let trophy;
        if (~hrefValue.indexOf("members/")) {
            value = `members/${value}`;
        }
        XenForo.ajax(`https://${urlbase}/${value}/trophies`, {}).then(data => {
            trophy = data.templateHtml;
            let parser = new DOMParser();
            trophy = parser.parseFromString(trophy, 'text/html');
            let overlayScrollElements = $(trophy).find('.overlayScroll');
            let totalCount = overlayScrollElements.length;
            if (totalCount > 1) {
                overlayScrollElements.first().remove();
            }

            let trophies = $(trophy).find('.trophy');
            let trophiesList = trophies.map((_, trophy) => trophy.id).get();

            let trophiesstyle = $(trophy).find('.trophy-icon');
            let trophystyleList = trophiesstyle.map((_, trophy) => trophy.style.cssText.replace(/"/g, '')).get();

            let titletrophy = $(trophy).find('.title');
            let titleTexttrophyList = titletrophy.map((_, trophy) => trophy.textContent).get();

            let trophyLinks = {};

            for (let i = 0; i < titleTexttrophyList.length; i++) {
                let element = titleTexttrophyList[i];
                $(trophy).find('.title:contains(' + element + ')').each(function () {
                    let href = $(this).closest('.trophy').find('.trophy-icon').attr('href');
                    if (href) {
                        trophyLinks[element] = href;
                    } else {
                        trophyLinks[element] = "None";
                    }
                });
            }


            let htmlTrophy = "<ol>";
            let titles = [];
            for (let index = 0; index < trophystyleList.length; index++) {
                let trophyLink = trophyLinks[titleTexttrophyList[index]];
                if (trophyLink == "None") {
                    htmlTrophy += `<li class="trophy DelayedTooltip" id="${trophiesList[index]}" tabindex="0"><div class="trophy-icon" style="${trophystyleList[index]}"></div></li>`;
                } else {
                    htmlTrophy += `<li class="trophy DelayedTooltip" id="${trophiesList[index]}" tabindex="0"><a href="${trophyLink}" class="trophy-icon" style="${trophystyleList[index]}"></a></li>`;
                }
                titles.push(titleTexttrophyList[index]);
            }
            htmlTrophy += "</ol>";

            if (screen.width <= 480) {
                $('.memberViewTrophies').html(htmlTrophy);
                $('.Responsive .memberViewTrophies').css('display', 'block');
                $('.memberViewTrophies').css({
                    'position': 'relative',
                    'margin': '20px 0 0',
                    'overflow-x': 'scroll',
                    'white-space': 'nowrap'
                });

                $('.memberViewTrophies .trophy').hover(function() {
                    $(this).css({
                        '-webkit-transform': 'none',
                        'transform': 'none',
                        '-ms-transform': 'none'
                    });
                });
            } else {
                $('.memberViewTrophies').html(htmlTrophy);
            }

            $('.DelayedTooltip').each(function(index, element) {
                tippy(element, {
                    content: titles[index],
                    arrow: true,
                    onShow(instance) {
                        instance.popper.style.border = '10px solid transparent';
                    }
                });
            });
        });
    }
})();

QingJ © 2025

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