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.

Verze ze dne 03. 12. 2020. Zobrazit nejnovější verzi.

// ==UserScript==
// @name         ING DiBa Login keepAlive
// @namespace    https://*.ing-diba.*
// @version      0.7.91
// @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';
    initEvents();

    if(window.debugOutput !== undefined)
    {
        window.debugOutput = true;
    }
    //setTimeout(function(){restoreConsole();},400);


    var cnt = 0;
    var hBckup = new Object();
    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[6] = "insight insight--ghost";
    classesToHide[7] = "insight insight--teaser";
    //classesToHide[8] = "id3bd5e84e40";  //Test: ID's scheinen sich zu ändern
    classesToHide[8] = "insight-modal";
    classesToHide[9] = "u-print-hidden";//  //insight insight--elevated
    classesToHide[10] = "insight insight--slider";
    //classesToHide[11] = "xxx";
    //classesToHide[11] = "xxx";
    //classesToHide[11] = "xxx";
    //classesToHide[11] = "xxx";
    //classesToHide[11] = "xxx";

    //hideClasses(true);
    window.addEventListener('load', styleStart());
    setTimeout(function(){styleStart();},600);

    //window.addEventListener('load', function(){setTimeout(function(){styleStart();},300)});

    function log(txt)
    {
        var d = new Date();
        console.log(d.toLocaleString()+ "." + d.getMilliseconds() + " " + txt);
    }

    function initEvents()
    {
        log("initEvents()");
        //test1
        document.onreadystatechange = function(){
            if(document.readyState == "complete")
            {
               log("document.onreadystatechange == \"complete\"");
            }

            if(document.readyState == "interactive")
            {
               log("document.onreadystatechange == \"interactive\"");
            }
        }

        //test2
        window.addEventListener('load', function(){log("window.addEventListener load");});

        //test3
        document.addEventListener('DOMContentLoaded', function(){log("document.addEventListener DOMContentLoaded");});
    }


    function styleStart()
    {
        cnt++;
        log("styleStart() " + cnt);
        editStyle("sh-page ing-diba-content-to-blur","90%");
        editStyle("isin","90%");
        //Werbeeinblendungen ausblenden. Falls nicht gewünscht, einfach auskommentieren oder auf 'false' setzen!
        hideClasses(true);


        btnColor();
        //watchListFullNames();
    }

    function btnColor()
    {

            var loBtn = d.getElementsByClassName("button-session")
            loBtn[0].innerText = "Kein Auto-Logout!";
            //d.getElementsByClassName("session")[0].style.cssText = ":hover {color: red !important; background-color: green !important;}";

            var c = "rgb(255, 197, 161)";
            var ho = [["session","rgb(255, 98, 50)"], //rgb(255, 98, 0)
                      ["ing-header",c],
                      ["ing-sn-content-to-blur",c],
                      ["ing-header__bottom",c],
                      ["navigation-l1",c],
                      ["ingde-search-input","rgb(255, 222, 201)"],
                      ["session__refresh","rgb(191, 73, 0)"]
                      ];

            for(var s in ho)
            {
                try
                {
                    var b = d.getElementsByClassName(ho[s][0]);
                    b[0].style["background-color"] = ho[s][1];
                }
                catch(e)
                {
                    window.console.log("Fehler btnColor(): " + e.message);
                }
            }
    }

    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
        {
            window.console.log(">>> hideClass: " + clsName);

            var sichtbarkeit = hide ? 'hidden' : 'visible';
            var ga = d.getElementsByClassName(clsName);

            if(ga === null || ga.length === 0)
            {
                var e = d.getElementById(clsName);
                ga = new Object();
                ga[0] = e;
            }

            if(ga !== null)
            {
                for(var v in ga)
                {
                    if(ga[v] !== null)
                    {
                        if(ga[v].id !== undefined)
                        {
                            if(ga[v].className === clsName || ga[v].id === clsName)
                               {
                                   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);
                }
            }
        }
    }


    function restoreConsole()
    {
        var i = document.createElement('iframe');
        i.style.display = 'none';
        document.body.appendChild(i);
        window.console = i.contentWindow.console;
        i.parentNode.removeChild(i);
    }
})();