您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Grey out irrelevant flowers, move them to the bottom of the list, reorder flowers by quantity, and sort plushies by quantity on Torn's items page.
// ==UserScript== // @name Items Page Flower and Plushie Filter and Sort (PDA Optimized) // @namespace http://tampermonkey.net/ // @version 1.4 // @description Grey out irrelevant flowers, move them to the bottom of the list, reorder flowers by quantity, and sort plushies by quantity on Torn's items page. // @match https://www.torn.com/item.php* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; // List of irrelevant flowers const irrelevantFlowers = [ "Bunch of Carnations", "Bunch of Flowers", "Daffodil", "Bunch of Black Roses", "Dozen Roses", "Funeral Wreath", "Single Red Rose", ]; function processItems() { // Handle Flowers const flowerItems = Array.from(document.querySelectorAll('#flowers-items > li')); if (flowerItems.length) { const relevantFlowers = []; const irrelevantFlowersList = []; flowerItems.forEach((item) => { const itemName = item.querySelector('.name-wrap .name')?.textContent.trim(); const qtyElement = item.querySelector('.item-amount.qty'); const qty = parseInt(qtyElement?.textContent.replace(/[^0-9]/g, '') || 0, 10); if (!itemName) return; if (irrelevantFlowers.includes(itemName)) { // Grey out irrelevant flowers item.style.opacity = "0.5"; item.style.backgroundColor = "#f9f9f9"; irrelevantFlowersList.push(item); } else { relevantFlowers.push({ element: item, quantity: qty }); } }); // Sort relevant flowers by quantity (ascending) relevantFlowers.sort((a, b) => a.quantity - b.quantity); // Append items back to the DOM const flowerList = document.querySelector('#flowers-items'); if (flowerList) { relevantFlowers.forEach(({ element }) => flowerList.appendChild(element)); irrelevantFlowersList.forEach((item) => flowerList.appendChild(item)); } } // Handle Plushies const plushieItems = Array.from(document.querySelectorAll('#plushies-items > li')); if (plushieItems.length) { const plushies = plushieItems.map((item) => { const qtyElement = item.querySelector('.item-amount.qty'); const qty = parseInt(qtyElement?.textContent.replace(/[^0-9]/g, '') || 0, 10); return { element: item, quantity: qty }; }); // Sort plushies by quantity (ascending) plushies.sort((a, b) => a.quantity - b.quantity); // Append sorted plushies back to the DOM const plushieList = document.querySelector('#plushies-items'); if (plushieList) { plushies.forEach(({ element }) => plushieList.appendChild(element)); } } } // Throttled observer callback for DOM changes const throttle = (callback, delay) => { let lastCall = 0; return (...args) => { const now = Date.now(); if (now - lastCall >= delay) { lastCall = now; callback(...args); } }; }; // Set up a MutationObserver for dynamic content updates const observer = new MutationObserver( throttle(() => { processItems(); }, 500) ); // Observe the list containers for changes const flowerTargetNode = document.querySelector('#flowers-items'); const plushieTargetNode = document.querySelector('#plushies-items'); if (flowerTargetNode) { observer.observe(flowerTargetNode, { childList: true, subtree: true }); } if (plushieTargetNode) { observer.observe(plushieTargetNode, { childList: true, subtree: true }); } // Initial run processItems(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址