ING DiBa Login keepAlive

try to keep login alive... Das Script setzt die "Automatische LogOut-Funktion" der DiBa-Site außer Kraft. Die Seite bleibt so lange Online, bis man sich selber abmeldet. Hauseigene Werbung wird nun ebenfalls ausgeblendet.

As of 2020-05-11. See the latest version.

// ==UserScript==
// @name         ING DiBa Login keepAlive
// @namespace    https://*.ing-diba.*
// @version      0.7.3
// @description  try to keep login alive... Das Script setzt die "Automatische LogOut-Funktion" der DiBa-Site außer Kraft. Die Seite bleibt so lange Online, bis man sich selber abmeldet. Hauseigene Werbung wird nun ebenfalls ausgeblendet.
// @description  desc2 Banking
// @author       Chillchef
// @match        https://*.ing.*
// @match        https://ing.*
// @match        https://*.ing-diba.*
// @include      https://*.ing-diba.*
// @include      https://*.ing.*

// @grant        none
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';
    if(window.debugOutput !== undefined)
    {
        window.debugOutput = true;
    }

    var d = document;
    var t = 100000;
    setTimeout(function(){refreshLogin();},t);
    setTimeout(function(){refreshPopup();},t);

    var classesToHide = new Object();
    classesToHide[0] = "ghost-account";
    classesToHide[1] = "hint sales-signals sales-signals--wide gap-top-2-lg sales-signals__teaser";
    classesToHide[2] = "hint sales-signals sales-signals--wide";
    classesToHide[3] = "modal modal--open";
    classesToHide[4] = "hint sales-signals sales-signals--wide";
    classesToHide[5] = "hint sales-signals";
    classesToHide[5] = "g2p-account__card";

    var hBckup = new Object();
    hideClasses(true);   //Werbeeinblendungen ausblenden. Falls nicht gewünscht, einfach auskommentieren oder auf 'false' setzen!
    editStyle("sh-page ing-diba-content-to-blur","90%");
    editStyle("isin","90%");

    //watchListFullNames();

    function refreshLogin()
    {
        try
        {
            var clsn = "session__refresh";
            var reloadBtn = d.getElementsByClassName(clsn);
            if(reloadBtn[0])
            {
                reloadBtn[0].click();
                console.log(new Date().toLocaleString() + " Login-Refresh");
            }
        }
        catch(e)
        {
            window.alert("DiBa-Script-Refresh-Fehler: " + e.message);
            window.console.log("Fehler: " + e.message + " !!!");
            console.log(e);
        }
        setTimeout(function(){refreshLogin();},t);
    }

    function refreshPopup()
    {
        try
        {
            var pId = "QuotestreamPopup";
            var p = d.getElementById(pId);
            if(p !== null)
            {
                var ph = p.clientHeight;
                if(ph > 0)
                {
                    d.getElementById("ctl00_QsPopup_Reload").click();
                }
            }
        }
        catch(e)
        {
            window.alert("DiBa-Script-Popup-Fehler: " + e.message);
            window.console.log("Fehler: " + e.message + " !!!");
            console.log(e);
        }
        setTimeout(function(){refreshPopup();},3000);
    }

    function hideClasses(hide)
    {
        for(var v in classesToHide)
        {
            hideClass(classesToHide[v], hide);
        }
    }

    function hideClass(clsName, hide)
    {
        try
        {
            var sichtbarkeit = hide ? 'hidden' : 'visible';
            var ga = d.getElementsByClassName(clsName);
            if(ga !== null)
            {
                for(var v in ga)
                {
                    if(ga[v].id !== undefined)
                    {
                        ga[v].style.visibility = sichtbarkeit;
                        if(hide === true)
                        {
                            if (hBckup[ga[v].id] === undefined) { hBckup[ga[v].id] = ga[v].style.height;}
                            ga[v].style.height = '0px';
                        }
                        else
                        {
                            if (hBckup[ga[v].id] !== undefined) { ga[v].style.height = hBckup[ga[v].id]}
                        }
                    }
                }
            }
        }
        catch(e)
        {
            window.alert("DiBa-Script-Hide-Class-Fehler: " + clsName + ": " + e.message);
            window.console.log("Fehler: " + e.message + " !!!");
            console.log(e);
        }
    }

    function editStyle(clsName, clsWidth)
    {
        try
        {
            var c;
            c = d.getElementsByClassName(clsName);
            if(!c)
            {
                c = d.getElementById(clsName);
            }
            if(c.length > 0)
            {
                for(var v in c)
                {
                    try
                    {
                        c[v].style["max-width"] = clsWidth;
                        c[v].children[1].style.maxWidth = clsWidth;
                    }
                    catch(ex)
                    {
                    }
                }
            }
        }
        catch(e)
        {
            window.alert("DiBa-Script-editStyle-Fehler: " + clsName + ": " + e.message);
            window.console.log("Fehler: " + e.message + " !!!");
            console.log(e);
        }
    }

    var f;
    function createFrame(url, id)
    {
        try
        {
            f = document.createElement('iframe');
            f.src = url;
            document.body.appendChild(f)
            f.setAttribute("id",id);


            return document.getElementById(id).contentDocument.getElementsByClassName("headline instrument-name")[0].innerHTML;
        }
        catch(e)
        {
            return id;
        }
    }

    function watchListFullNames()
    {
        var t = d.getElementById("ctl00_WebPartManager_wp1597137417_wp45466993_PortfolioItems_Control_Grid").childNodes[2].rows;
        for(var r in t)
        {
            console.log(t[r]);
            if(t[r].className === "first")
            {
                try
                {
                    var id = t[r].cells[0].textContent;
                    var url = t[r].cells[0].childNodes[0].getAttribute("href");

                    t[r].cells[0].textContent = createFrame(url, id);
                }
                catch(e)
                {
                    console.log(e);
                }
            }
        }
    }

})();