您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows the total amount for each rating, total/daily installs, and scripts posted on any user profile and search pages.
当前为
// ==UserScript== // @name Greasy Fork - Analyze from posted scripts // @namespace ScriptAnalyzer // @version 12 // @description Shows the total amount for each rating, total/daily installs, and scripts posted on any user profile and search pages. // @author hacker09 // @match https://greasyfork.org/*/users/* // @match https://greasyfork.org/*/scripts?q=* // @match https://greasyfork.org/*/scripts/by-site/* // @icon https://t2.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://greasyfork.org/&size=64 // @grant none // ==/UserScript== (async function() { 'use strict'; var LatestCreated, LatestUpdated, ok, bad, good, DailyTotal, TotalInstalls, ScriptsArray, element, SignedIN = ''; //Create new variables const data = await (await fetch(document.querySelector('link[href$=".json"]').href)).json(); //Fetch and parse the response document.head.insertAdjacentHTML('beforeend', '<style>.list-option:not(.list-current) {display: flex; flex-direction: row; align-items: center;} .list-option:not(.list-current) > span {position: relative; left: -7px;} .list-option.list-current > span {position: relative; left: 5px;}</style>'); //Add a space before ( location.href.match(/org\/.*\/scripts/) ? (element = ".width-constraint:nth-child(2)", ScriptsArray = data) : (element = "#user-script-sets-section, #user-script-list-section", ScriptsArray = document.querySelector('link[href$=".json"]').href.match(document.querySelector(".user-profile-link > a") !== null ? document.querySelector(".user-profile-link > a").innerText.toLowerCase() : false) ? (SignedIN = ' + Deleted + Unlisted + Libraries', data.scripts) : data.all_listable_scripts); //Get the current page element based on whether the current page is a script search page or not, and if the user is logged in or not LatestCreated = new Date(Math.max(...ScriptsArray.map(obj => new Date(obj.created_at)))); //Get the latest created script LatestUpdated = new Date(Math.max(...ScriptsArray.map(obj => new Date(obj.code_updated_at)))); //Get the latest updated script ok = ScriptsArray.map(obj => parseInt(obj.ok_ratings, 10)).reduce((acc, curr) => acc + curr, 0); //Sum the total amount of ok ratings bad = ScriptsArray.map(obj => parseInt(obj.bad_ratings, 10)).reduce((acc, curr) => acc + curr, 0); //Sum the total amount of bad ratings good = ScriptsArray.map(obj => parseInt(obj.good_ratings, 10)).reduce((acc, curr) => acc + curr, 0); //Sum the total amount of good ratings DailyTotal = ScriptsArray.map(obj => parseInt(obj.daily_installs, 10)).reduce((acc, curr) => acc + curr, 0); //Sum the total amount of daily total installs TotalInstalls = ScriptsArray.map(obj => parseInt(obj.total_installs, 10)).reduce((acc, curr) => acc + curr, 0); //Sum the total amount of total installs document.querySelector(element).insertAdjacentHTML("afterbegin", `<section><header><h3>Total</h3></header><section class="text-content"><ul><li><b>Script posts${SignedIN}</b>: ${ScriptsArray.length}</li><li><b>Daily installs</b>: ${DailyTotal.toLocaleString()}</li><li><b>Total installs</b>: ${TotalInstalls.toLocaleString()}</li><li><b>Total ok ratings</b>: ${ok.toLocaleString()}</li><li><b>Total bad ratings</b>: ${bad.toLocaleString()}</li><li><b>Total good ratings</b>: ${good.toLocaleString()}</li><li><b>Latest created</b>: ${LatestCreated}</li><li><b>Latest updated</b>: ${LatestUpdated}</li></ul></section></section>`); //Add the information on the page document.querySelector(".list-option").innerHTML += `<span>(${DailyTotal.toLocaleString()})</span>`; //Add the Dailytotal number on the sidebar document.querySelector(".list-option:nth-child(2)").innerHTML += `<span>(${TotalInstalls.toLocaleString()})</span>`; //Add the total number on the sidebar document.querySelector(".list-option:nth-child(3)").innerHTML += `<span>(${parseInt(ok+bad+good).toLocaleString()})</span>`; //Add the ratings number on the sidebar })();