您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Show changes in the number of works in your bins!
// ==UserScript== // @name AO3: [Wrangling] Show bin count change! // @description Show changes in the number of works in your bins! // @version 1.0.0 // @author owlwinter // @namespace N/A // @license MIT license // @match *://*.archiveofourown.org/tag_wranglers/* // @grant GM_setValue // @grant GM_getValue // ==/UserScript== (function() { 'use strict'; const array = f => Array.prototype.slice.call(f, 0) //Checks if using dark mode const darkmode = window.getComputedStyle(document.body).backgroundColor == 'rgb(51, 51, 51)' let increased_count_color let decreased_count_color if (darkmode) { increased_count_color = "salmon" decreased_count_color = "limegreen" } else { increased_count_color = "brown" decreased_count_color = "CornflowerBlue" } //adds button to page const unwrangled_label = document.querySelector("#user-page > div.assigned.module > p"); const btn = document.createElement("button") btn.innerText = "Show bin changes" btn.style.fontSize = "0.627rem" btn.style.float = "left" btn.style.marginTop = "5px"; btn.style.marginBottom = "10px"; var br = document.createElement("br"); unwrangled_label.appendChild(document.createElement("br")) unwrangled_label.appendChild(btn) //Calculates the difference between two numbers, and sets the resulting text color based on that const calcDifference = function showdif(oldcount, newcount) { if (isNaN(oldcount) || isNaN(newcount)) { return null } if (oldcount == newcount) { return null } if (newcount > oldcount) { return ["+" + (newcount - oldcount), increased_count_color] } return [(newcount - oldcount), decreased_count_color] } //When button is clicked btn.addEventListener("click", function(e) { e.preventDefault() //gets all the unwrangled bins const currentbins = array(document.getElementsByTagName("td")) for (const bin of currentbins) { //eg like this: Fable SMP_unwrangled characters const key = bin.parentElement.firstElementChild.innerText + "_" + bin.title; //If the bin's info hasn't been saved by the user before, we will set the old value as 0 const old_value = GM_getValue(key) || 0; //If the bin is empty, set the new value as 0 const new_value = bin.innerText || 0; //Saves the current bin info across session use //https://wiki.greasespot.net/GM.setValue //On tapermonkey, you can see the info saved by opening the script and clicking storage! GM_setValue(key, new_value) const span = document.createElement("span") const resultcalc = calcDifference(parseInt(old_value), parseInt(new_value)) if (resultcalc == null) { continue; } //Un-comment out for debugging //console.log(key + " - oldvalue: " + old_value + " newvalue: " + bin.innerText) //Adds and formats the bin change text const textbeginning = document.createTextNode(" ("); const textToAdd = document.createTextNode(resultcalc[0]) const textend = document.createTextNode(")"); span.style.color = resultcalc[1]; span.appendChild(textbeginning); span.appendChild(textToAdd); span.appendChild(textend); bin.appendChild(span); } unwrangled_label.removeChild(btn) }); // Your code here... })();