NW_profession_names

Prins NW professions name to console

// ==UserScript==
// @name        NW_profession_names
// @include http://gateway*.playneverwinter.com/*
// @include https://gateway*.playneverwinter.com/*
// @include http://gateway.*.perfectworld.eu/*
// @include https://gateway.*.perfectworld.eu/*
// @grant       GM_addStyle
// @version 0.0.2
// @namespace https://greasyfork.org/users/2278
// @description Prins NW professions name to console
// ==/UserScript==

/*--- Create a button in a container div.  It will be styled and
 positioned with CSS.
 */
function onclick() {
    profession = window.prompt("Add profession name and look console log", "profession");
    return profession ;}






function Print_prodessions(proffession) {

    var tasks = unsafeWindow.client.dataModel.model.craftinglist['craft_' + proffession].entries.filter(function (entry) {
        return entry.def && entry.def.displayname;
    });
    //var tasks = unsafeWindow.client.dataModel.model.craftinglist['craft_' + 'Artificing'];
    var professuinlist = tasks.forEach(function (main) {
        main.consumables.forEach(function (slotconsum) {
            main.rewards.forEach(function (slotrewards) {
                console.log("LVL:" + main.def.requiredrank + ", ", "name: " + '"' + main.def.displayname + '", ', "task: " + '"' + main.def.name + '", ', main.rewards[0].hdef.replace('[',': "').replace(']', '", '), "Required:" + main.consumables[0].hdef.replace('@ItemDef[',' "').replace(']', '",'));
            });
        });
    });
}


var zNode       = document.createElement ('div');
zNode.innerHTML = '<button id="myButton" type="button">'
+ 'For Pete\'s sake, don\'t click me! okay, move to page where is profession what names you want print and then... click</button>'
;
zNode.setAttribute ('id', 'myContainer');
document.body.appendChild (zNode);

//--- Activate the newly added button.
document.getElementById ("myButton").addEventListener (
    "click", ButtonClickAction, false
);

function ButtonClickAction (zEvent) {
    /*--- For our dummy action, we'll just add a line of text to the top
     of the screen.
     *///onclick();
    var zNode       = document.createElement ('p');
    zNode.innerHTML = 'The button was clicked. Look console log' + Print_prodessions(onclick());
    document.getElementById ("myContainer").replaceChild (zNode, zNode);
}

//--- Style our newly added elements using CSS.
GM_addStyle ( multilineStr ( function () {/*!
 #myContainer {
 position:               absolute;
 top:                    0;
 left:                   0;
 font-size:              20px;
 background:             orange;
 border:                 3px outset black;
 margin:                 5px;
 opacity:                0.9;
 z-index:                222;
 padding:                5px 20px;
 }
 #myButton {
 cursor:                 pointer;
 }
 #myContainer p {
 color:                  red;
 background:             white;
 }
 */} ) );

function multilineStr (dummyFunc) {
    var str = dummyFunc.toString ();
    str     = str.replace (/^[^\/]+\/\*!?/, '') // Strip function () { /*!
    .replace (/\s*\*\/\s*\}\s*$/, '')   // Strip */ }
    .replace (/\/\/.+$/gm, '') // Double-slash comments wreck CSS. Strip them.
    ;
    return str;
}