Add action buttons to Neopets Quick Stock page
当前为
// ==UserScript==
// @name One-Click Quickstock/Quickdeposit
// @description Add action buttons to Neopets Quick Stock page
// @version 2025.01.30
// @license GNU GPLv3
// @match https://www.neopets.com/quickstock.phtml*
// @author Posterboy
// @namespace https://youtube.com/@Neo_Posterboy
// @icon https://images.neopets.com/new_shopkeepers/t_1900.gif
// @grant none
// ==/UserScript==
(function() {
'use strict';
// ==============================
// User Interface
// ==============================
function createToolbar() {
console.log("createToolbar called");
let form = document.querySelector('form[name="quickstock"]');
if (!form) {
console.log("Form not found");
return;
}
console.log("Form found");
// Create a toolbar div
let toolbar = document.createElement('div');
toolbar.style.marginBottom = '15px';
toolbar.style.padding = '10px';
toolbar.style.backgroundColor = '#f4f4f4';
toolbar.style.border = '1px solid #ddd';
toolbar.style.borderRadius = '5px';
toolbar.style.boxShadow = '0 2px 5px rgba(0, 0, 0, 0.1)';
toolbar.style.textAlign = 'center';
// Create "Stock All" button
let stockAllBtn = document.createElement('button');
stockAllBtn.textContent = 'Stock All';
stockAllBtn.style.padding = '10px 20px';
stockAllBtn.style.marginRight = '10px';
stockAllBtn.style.backgroundColor = '#4CAF50';
stockAllBtn.style.color = 'white';
stockAllBtn.style.border = 'none';
stockAllBtn.style.borderRadius = '4px';
stockAllBtn.style.cursor = 'pointer';
stockAllBtn.type = 'button';
stockAllBtn.onclick = () => selectAction('stock');
// Create "Deposit All" button
let depositAllBtn = document.createElement('button');
depositAllBtn.textContent = 'Deposit All';
depositAllBtn.style.padding = '10px 20px';
depositAllBtn.style.backgroundColor = '#2196F3';
depositAllBtn.style.color = 'white';
depositAllBtn.style.border = 'none';
depositAllBtn.style.borderRadius = '4px';
depositAllBtn.style.cursor = 'pointer';
depositAllBtn.type = 'button';
depositAllBtn.onclick = () => selectAction('deposit');
// Append buttons to the toolbar
toolbar.appendChild(stockAllBtn);
toolbar.appendChild(depositAllBtn);
// Insert the toolbar above the table
let table = form.querySelector('table');
if (!table) {
console.log("Table not found");
return;
}
table.parentNode.insertBefore(toolbar, table);
console.log("Toolbar added");
}
// ==============================
// Script function
// ==============================
function selectAction(action) {
console.log(`selectAction called with action: ${action}`);
// Find all rows in the table (excluding header and empty rows)
let rows = document.querySelectorAll('table tr');
//Function to help deposit NC items since they don't have a Stock radio button
rows.forEach(row => {
let stockCell = row.cells[1];
if (!stockCell) return;
// Skip rows with N/A only if the action is "stock"
if (action === 'stock' && stockCell.textContent.trim() === 'N/A') {
console.log('Skipping item with N/A in Stock for Stock action');
return;
}
// Otherwise, look for the radio button in the row for the selected action
let radio = row.querySelector(`input[name^="cash_radio_arr"][value="${action}"]`);
if (radio) {
console.log(`Selecting radio button for action: ${action} on item`);
radio.checked = true;
} else {
console.log(`No radio button found for action: ${action} on item`);
}
});
// After all items are processed, submit the form
let form = document.querySelector('form[name="quickstock"]');
if (form) {
console.log("Submitting form");
form.submit();
} else {
console.log("Form not found when submitting");
}
}
window.addEventListener('load', () => {
console.log("Window loaded");
createToolbar();
});
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址