Untitled

 avatar
unknown
javascript
3 years ago
2.9 kB
12
Indexable
// ==UserScript==
// @name         GS Json uploader
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Quick json uploader
// @author       Lvl5Mage
// @match        https://nft.gamestop.com/mint
// @icon         https://www.google.com/s2/favicons?sz=64&domain=gamestop.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    document.addEventListener('keydown', function (a) {
        if(a.which === 81){
           uploader();
        }
    }, false);

    const uploader = () =>{
        const positionDiv = document.querySelector('.PreviewWrapper-sc-dwxt2k-1');
        const newInput = document.createElement("input");
        newInput.innerText = "Upload JSON";
        newInput.type = "file";
        newInput.style = "position:absolute;z-index:999;background: #88d668;border: 1px solid black;margin: 30px;padding: 5px;";
        positionDiv.appendChild(newInput);


        function onChange(event) {
            var reader = new FileReader();
            reader.onload = onReaderLoad;
            reader.readAsText(event.target.files[0]);
        }

        function onReaderLoad(event){
            var obj = JSON.parse(event.target.result);
            console.log(obj);
            writeData(obj);
        }
        function inputTrigger(input, value){
            let lastValue = input.value;
            input.value = value;
            let event = new Event('input', { bubbles: true });
            event.simulated = true;
            let tracker = input._valueTracker;
            if (tracker) {
                tracker.setValue(lastValue);
            }
            input.dispatchEvent(event);
        }
        function writeData(obj){
            inputTrigger(document.querySelector('input[name="name"]'), obj.name);
            inputTrigger(document.querySelector('textarea[name="description"]'), obj.description);
            inputTrigger(document.querySelector('input[name="amount"]'), 1);// EDIT if you want to mint more
            inputTrigger(document.querySelector('input[name="royalty"]'), obj.royalty_percentage || 10);// EDIT if you want different royalties

            obj.attributes.map((attr, index) =>{
                //document.querySelector('.etawXs').innerHTML += document.querySelector('.cvFZzj').outerHTML;
                document.querySelector('button[aria-label="Add Row"]').click();
                setTimeout(function()
                           {
                    const inputContainer = document.getElementsByClassName('sc-fivaXQ')[index];
                    inputTrigger(inputContainer.querySelector('input[aria-label="Label"]'), attr.trait_type);
                    inputTrigger(inputContainer.querySelector('input[aria-label="Value"]'), attr.value);
                },200)


            });
        }

        newInput.addEventListener('change', onChange);
    }


    })();
Editor is loading...