Greasyfork 脚本显示评分

在每个脚本名称后面添加脚本评分

目前为 2024-06-08 提交的版本。查看 最新版本

// ==UserScript==

// @name         Greasyfork 脚本显示评分

// @namespace    https://gf.qytechs.cn/zh-CN/users/1169082-%E4%BA%BA%E6%B0%91%E7%9A%84%E5%8B%A4%E5%8A%A1%E5%91%98

// @version      1.0

// @description  在每个脚本名称后面添加脚本评分 

// @author       人民的勤务员

// @match        https://gf.qytechs.cn/* 
// @license      MIT


// @grant        none

// @icon         https://www.google.com/s2/favicons?domain=gf.qytechs.cn

// ==/UserScript==

(function() {

    'use strict';

    // 检测脚本列表的出现,并自动插入评分

    function observeScriptList() {

        const scriptList = document.querySelector('.script-list');

        if (scriptList) {

            // 插入评分

            insertRatings(scriptList);



            // 配置观察器

            const observer = new MutationObserver(function(mutationsList, observer) {

                for (let mutation of mutationsList) {

                    if (mutation.type === 'childList') {

                        for (let node of mutation.addedNodes) {

                            // 检查是否为脚本列表项

                            if (node.nodeType === Node.ELEMENT_NODE && node.matches('li[data-script-id]')) {

                                insertRating(node);

                            }

                        }

                    }

                }

            });

            // 开始观察脚本列表的变化

            observer.observe(scriptList, { childList: true, subtree: true });

        }

    }

    // 插入评分

    function insertRating(scriptBlock) {

        const ratingElement = scriptBlock.querySelector('dd.script-list-ratings');

        if (ratingElement) {

            const rating = ratingElement.getAttribute('data-rating-score');

            const ratingDisplay = document.createElement('span');

            ratingDisplay.textContent = rating.replace(/[^\d.]/g, '');

            ratingDisplay.style.marginLeft = '30px';

            ratingDisplay.style.fontSize = '1em';

            ratingDisplay.style.color = '#ff8c00';

            ratingDisplay.style.fontWeight = 'bold';

            const titleElement = scriptBlock.querySelector('.script-link');

            if (titleElement) {

                titleElement.insertAdjacentElement('afterend', ratingDisplay);

            }

        }

    }

    // 插入评分到当前页面的脚本列表中

    function insertRatings(scriptList) {

        const scriptBlocks = scriptList.querySelectorAll('li[data-script-id]');

        scriptBlocks.forEach(insertRating);

    }

    // 开始观察当前页面脚本列表的出现

    observeScriptList();

    // 观察 body 元素以检测页面加载了下一页

    const bodyObserver = new MutationObserver(function(mutationsList, observer) {

        mutationsList.forEach(mutation => {

            mutation.addedNodes.forEach(node => {

                if (node.nodeType === Node.ELEMENT_NODE && node.matches('.script-list')) {

                    // 页面加载了下一页,自动插入评分

                    insertRatings(node);

                }

            });

        });

    });

    // 开始观察 body 元素的子节点变化

    bodyObserver.observe(document.body, { childList: true, subtree: true });

})();

QingJ © 2025

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