get proto_submit_purchases_recap

 avatar
unknown
plain_text
2 years ago
1.7 kB
4
Indexable

// ==UserScript==
// @name         Get proto_submit_purchases_recap from sentry context
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Copy & clean the proto_submit_purchases_recap json from sentry context (by pressing Shit+S)
// @author       Khalil Bouguerra
// @match        https://stockly.sentry.io/issues/*
// @grant        GM_setClipboard
// ==/UserScript==

function parseNested(str) {
    try {
        return JSON.parse(str, (_, val) => {
            if (typeof val === 'string'){
                return parseNested(val)
            }
            return val
        })
    } catch (exc) {
        return str
    }
};

(function() {
    'use strict';
    document.addEventListener('keydown', evt => {
                console.log("started");
        if(evt.shiftKey){
                console.log("tirggered");
            if (event.code == 'KeyS') {
                let raw_btn= Array.from(document.querySelectorAll('input[value=raw]'))[0];
                raw_btn.click();
                let proto_submit_purchases_recap = Array.from(document.getElementsByTagName('tr')).filter((tag)=> tag.firstElementChild.innerText=="proto_submit_purchases_recap")
                if (proto_submit_purchases_recap){
                    let cleaned_recap = JSON.stringify(parseNested(proto_submit_purchases_recap[0].lastElementChild.innerText),null, 4)
                    GM_setClipboard(cleaned_recap);
                    alert("proto_submit_purchases_recap copied to clipboard");
                }else{
                    alert("No proto_submit_purchases_recap found on this Sentry contex!");
                }
                raw_btn.click();

            }
        }
    }, true);
})();