您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This script calculates and displays a F@H V8.3 WU's points beneath each WU's progress bar.
// ==UserScript== // @name Folding@Home V8.3 show WU points // @namespace Violentmonkey Scripts // @match https://v8-3.foldingathome.org/machines* // @grant none // @version 1.0 // @author Ken_g6 // @license MIT // @description This script calculates and displays a F@H V8.3 WU's points beneath each WU's progress bar. // ==/UserScript== (function() { 'use strict'; var time_unit = { 'w': 3600*24*7, 'd': 3600*24, 'h': 3600, 'm': 60, 's': 1 }; function add_pts() { let c = document.getElementsByClassName("progress-cell"); for (let i = 0; i < c.length; i++) { if(c[i].childElementCount == 1 && c[i].childNodes[0].className == 'progress-bar') { let ptsdiv = document.createElement('div'); ptsdiv.classList.add('pts-est'); c[i].appendChild(ptsdiv); } if(c[i].childElementCount == 2 && c[i].childNodes[1].className == 'pts-est') { let ptsdiv = c[i].childNodes[1]; // Now calculate points based on PPD, progress, and estimated completion time. var ppd=parseInt(c[i].nextSibling.innerText.replaceAll(',',''), 10); var eta_arr = c[i].title.split(' '); var eta=0; for(var j=1; j < eta_arr.length; j+=2) { eta += time_unit[eta_arr[j+1].substr(0,1)] * parseInt(eta_arr[j], 10); } var progress = parseFloat(c[i].children[0].innerText) / 100; var pts = 0; // if in 24 hours = 24*3600 seconds we'll get ppd points // then in eta/(1-progress) seconds we'll get (eta/(1-progress))/(24*3600)*ppd points. if(progress < .98) { var pts = ppd * (eta/(1-progress))/time_unit['d']; pts=Math.round(pts); pts = pts.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); ptsdiv.innerHTML = pts + " points (est)"; } } } } setInterval(add_pts, 10000); })();