torn swagger api QOL
// ==UserScript== // @name TORN SWAGGER QOL // @namespace http://tampermonkey.net/ // @version 0.0.4 // @description torn swagger api QOL // @author Skurk52, Lonerider543 // @match https://www.torn.com/swagger* // @icon https://i.imgur.com/h4lwf9S.png // @run-at document-start // @grant none // ==/UserScript== const delay = ms => new Promise(res => setTimeout(res, ms)); let original_fetch =fetch; (async function() { 'use strict'; let found_container = false; let container_tries = 0; let container; let api_key = localStorage.getItem("torn_api"); while (!found_container || container_tries >= 300) { container = document.querySelector(".scheme-container"); console.log(container) if (container) { if (!container.querySelector('input[title="API Key"]')) { const wrapper = document.createElement("section"); wrapper.className = "schemes wrapper block col-12"; const serverContainer = document.createElement("div"); serverContainer.className = "schemes-server-container"; serverContainer.style.marginTop = "10px" const innerDiv = document.createElement("div"); const titleSpan = document.createElement("span"); titleSpan.className = "servers-title"; titleSpan.textContent = "API Key"; const inputContainer = document.createElement("div"); inputContainer.className = "servers"; // you really reading my code??? :) const label = document.createElement("label"); label.setAttribute("for", "apikey"); label.style.marginRight = "10px" const input = document.createElement("input"); input.id = "apikey"; input.type = "text"; input.placeholder = "Enter your API Key"; input.title = "API Key"; api_key ? input.value = api_key : null; input.style.cssText = "width: 100%; margin: 0 !important; padding: 8px; border: 1px solid #ccc; border-radius: 4px; box-shadow: inset 0 1px 2px rgba(0,0,0,0.1)" input.addEventListener("input", () => { const apiKey = input.value.trim(); localStorage.setItem("torn_api", apiKey); }); label.appendChild(input); inputContainer.appendChild(label); innerDiv.appendChild(titleSpan); innerDiv.appendChild(inputContainer); serverContainer.appendChild(innerDiv); wrapper.appendChild(serverContainer); container.appendChild(wrapper); } found_container = true; } container_tries++ await delay(10); } window.fetch = async (input, init) => { init.headers = { ...init.headers, 'Authorization': 'ApiKey '+localStorage.getItem("torn_api") || '', }; return original_fetch(input, init); } })();