// ==UserScript==
// @name GreasyFork用户主页显示该用户所有脚本的今日总安装次数和迄今总安装次数
// @namespace http://tampermonkey.net/
// @version 0.1
// @description GreasyFork用户主页显示该用户所有脚本的今日总安装次数和迄今总安装次数。
// @author aspen138
// @match https://greasyfork.org/*/users/*
// @grant none
// @license MIT
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
// 累加函数
function calculateTotal() {
// 选择所有含数字的
元素,包括日安装和总安装
var dailyInstalls = document.querySelectorAll('dd.script-list-daily-installs > span');
var totalInstalls = document.querySelectorAll('dd.script-list-total-installs > span');
var dailyInstallsSum = 0;
var totalInstallsSum = 0;
// 累加日安装数字
dailyInstalls.forEach(function(installElement) {
var value = parseInt(installElement.textContent, 10);
if (!isNaN(value)) {
dailyInstallsSum += value;
}
});
// 累加总安装数字
totalInstalls.forEach(function(installElement) {
var value = parseInt(installElement.textContent, 10);
if (!isNaN(value)) {
totalInstallsSum += value;
}
});
return [dailyInstallsSum,totalInstallsSum];
}
function displayTotal(sum) {
var userHeader = document.querySelector('#about-user h2');
if (userHeader) {
// 创建显示总和的元素
var totalElement1 = document.createElement('div');
totalElement1.textContent = '该用户所有脚本的今日总安装次数:' + sum[0];
// 追加显示元素到页面
userHeader.parentNode.insertBefore(totalElement1, userHeader.nextSibling);
// 创建显示总和的元素
var totalElement2 = document.createElement('div');
totalElement2.textContent = '该用户所有脚本的迄今总安装次数:' + sum[1];
// 追加显示元素到页面
userHeader.parentNode.insertBefore(totalElement2, userHeader.nextSibling);
}
}
// 计算总和
var total = calculateTotal();
// 显示总和
displayTotal(total);
})();