您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prefill API key and check 'pretty' radio buttons.
// ==UserScript== // @name TornAPI Quick Fill // @namespace TornTos // @version 2.3 // @description Prefill API key and check 'pretty' radio buttons. // Makes available fields clickable and fires try it button when clicked. // Ctrl-Click to add multiple selections, try-it button will need to be click manually with this method. // @author tos // @match *.torn.com/api.html* // @grant GM_addStyle // ==/UserScript== const keyup = new Event('keyup') let APIkey = localStorage.getItem('x_apikey') || '' GM_addStyle(` span.click_select { cursor: pointer; } #save_api_key { margin: 0em 0.5em; } `) const sections = { u: `https://api.torn.com/user/?selections=lookup&key=`, p: `https://api.torn.com/property/?selections=lookup&key=`, f: `https://api.torn.com/faction/?selections=lookup&key=`, c: `https://api.torn.com/company/?selections=lookup&key=`, i: `https://api.torn.com/market/?selections=lookup&key=`, t: `https://api.torn.com/torn/?selections=lookup&key=` } const fill_selections = async () => { for (const s in sections) { const res = await fetch(sections[s]+APIkey).then(r => r.json()) document.querySelector(`p.${s}_fields`).innerHTML = `<small><strong>Available fields: </strong><span class="click_select">${res.selections.join('</span>, <span class="click_select">')}</span></small>` } document.querySelectorAll('span.click_select').forEach((span) => { span.addEventListener('click', (e) => { const panel = e.target.closest('div.panel-group') const selections_input = panel.querySelector('input[id*=selections]') if (e.ctrlKey) { if (selections_input.value === '') selections_input.value = e.target.innerText else selections_input.value += ','+e.target.innerText } else { selections_input.value = e.target.innerText panel.querySelector('BUTTON').click() } selections_input.dispatchEvent(keyup) }) }) } document.getElementById('documentation').style.display = 'none' document.getElementById('demo').style.display = 'block' $('#api_key').unbind('focusout') $('.updateURL').unbind('keyup') const api_key_input = document.getElementById('api_key') api_key_input.value = APIkey api_key_input.insertAdjacentHTML('afterend', `<button id="save_api_key">Save</button>`) const save_button = document.querySelector('#save_api_key') save_button.addEventListener('click', (e) => { APIkey = api_key_input.value localStorage.setItem('x_apikey', APIkey) }) document.querySelectorAll('input[type=radio][value=pretty]').forEach((radio) => {radio.checked = true}) document.querySelectorAll('input[id*=id],input[id*=selections]').forEach((input) => { input.addEventListener('keyup', (e)=> { const panel = e.target.closest('div.panel-group') const url_shown = document.querySelector(`#${e.target.getAttribute('data-field')}url`) const url_split = url_shown.innerText.split('/') url_split[4] = `${panel.querySelector('input[id*=id]').value}?selections=${panel.querySelector('input[id*=selections]').value}&key=` url_shown.innerText = url_split.join('/') }) }) document.querySelectorAll('BUTTON.btn').forEach(try_it_button => try_it_button.addEventListener('click', (e) => { e.target.parentElement.querySelector('div[class$=_result]').innerHTML = '' //fix for site adding a new panel every request })) fill_selections()
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址