[New] Coinpayu.com

Open and close Framed and Frameless Ads

安裝腳本?
作者推薦腳本

您可能也會喜歡 [New] Faucetpay Rotator

安裝腳本
// ==UserScript==
// @name         [New] Coinpayu.com
// @namespace    https://greasyfork.org/users/1162863
// @version      3.1.1
// @description  Open and close Framed and Frameless Ads
// @author       Andrewblood
// @match        *://*.coinpayu.com/*
// @exclude      *://*.coinpayu.com/login
// @icon         https://www.google.com/s2/favicons?sz=64&domain=coinpayu.com
// @grant        window.close
// @antifeature  referral-link     Referral-Link is in this Script integrated.
// @license      Copyright Andrewblood
// ==/UserScript==
/*

INFOS
At first the Script is only tested with an active Membership. (update comes)
Go to the Ad page and it start after reloading the page.
Framed Ads: It opens the first aviable site in the list and stay on it, when one site is completed it starts with the Next.
When all sites completed it goes to Framless Ads.
Frameless Ads: It opens and close site by site.
When all sites completed it close coinpayu

*/
(function() {
    'use strict';


    var oldfunction = unsafeWindow.open;
    var windowName = "";
    function newFunction(params1, params2) {
        if (!params2 || params2 == "_blank") {
            windowName = "popUpWindow";
        } else {
            windowName = params2;
        }
        return oldfunction(params1, windowName);
    };

    unsafeWindow.open = newFunction;
    unsafeWindow.onbeforeunload = function() {
        unsafeWindow.open('', windowName).close();
    };


    if (window.location.href.includes("register")) {
        if (!window.location.href.includes("Andrewblood")) {
            window.location.replace("https://www.coinpayu.com/register?r=Andrewblood");
        }
    }

    setTimeout(function() {
        document.querySelector("#toViewAds").click();
        setTimeout(function() {
            document.querySelector("#viewads > div.nav-head.dashboard-actived > p, #viewads > div:nth-child(1) > p").click();
        }, 500);
    }, 1000 * 2);

    setTimeout(function() {
        function processNextFramelessElement() {
            // Alle relevanten Elemente auswählen
            var elements = document.querySelectorAll('.clearfix.ags-list-box:not(.gray-all.clearfix.ags-list-box)');

            // Wenn Elemente vorhanden sind
            if (elements.length > 0) {
                // Erstes Element auswählen
                var firstElement = elements[0].querySelector('.text-overflow.ags-description > span');
                var timeElement = elements[0].querySelector('.ags-detail-time span');
                var urlElement = elements[0].querySelector('.text-overflow.ags-description');
                var url = urlElement.getAttribute('title');
                var time = parseInt(timeElement.textContent);

                console.log('Open ' + url + ' for ' + time + ' seconds.');
                urlElement.removeAttribute('title');

                if (firstElement) {
                    firstElement.click();

                    unsafeWindow.open('', windowName).close();

                    // 2 Sekunden warten bevor der Alert geprüft wird
                    setTimeout(function() {
                        var interval = setInterval(function() {
                            var alertElementGreen = document.querySelector(".alert-div.alert-green");
                            var alertElementRed = document.querySelector(".alert-div.alert-red");

                            if (alertElementGreen) {
                                clearInterval(interval);
                                setTimeout(function() {
                                    // Seite nicht neu laden, sondern die Funktion rekursiv für das nächste Element aufrufen
                                    processNextFramelessElement();
                                }, 3000); // 2000 Millisekunden (2 Sekunden) Verzögerung
                            } else if (alertElementRed) {
                                clearInterval(interval);
                                // Entfernt das aktuelle Element, falls ein roter Alert erscheint
                                elements[0].remove();
                                setTimeout(function() {
                                    // Nächstes Element verarbeiten
                                    processNextFramelessElement();
                                }, 7000); // 2000 Millisekunden (2 Sekunden) Verzögerung

                            }
                        }, 1000);
                    }, 3000); // 2000 Millisekunden (2 Sekunden) Verzögerung
                }
            } else {
                // Wenn keine Elemente mehr vorhanden sind, das Fallback ausführen
                document.querySelector("#viewads > div:nth-child(2) > p").click();
            }
        }

        // Startet den Prozess
        processNextFramelessElement();

    }, 1000 * 4);



    setTimeout(function() {
        if (document.querySelector(".ags-body-h6").innerText.includes("Framed Ads")) {
            function processNextFramedElement() {
                // Alle relevanten Elemente auswählen
                var element = document.querySelector('.clearfix.ags-list-box:not(.gray-all)');

                // Wenn Elemente vorhanden sind
                if (element) {
                    // Erstes Element auswählen
                    var firstElement = element.querySelector('.text-overflow.ags-description > span');
                    var timeElement = element.querySelector('.ags-detail-time span');
                    var urlElement = element.querySelector('.text-overflow.ags-description');
                    var url = urlElement.getAttribute('title');
                    var time = parseInt(timeElement.textContent);

                    console.log('Open ' + url + ' for ' + time + ' seconds.');
                    urlElement.removeAttribute('title');

                    if (firstElement) {
                        firstElement.click();

                        // 2 Sekunden warten bevor der Alert geprüft wird
                        setTimeout(function() {
                            var interval = setInterval(function() {
                                var alertElementGreen = document.querySelector(".alert-div.alert-green");
                                var alertElementRed = document.querySelector(".alert-div.alert-red");

                                if (alertElementGreen) {
                                    clearInterval(interval);
                                    setTimeout(function() {
                                        // Seite nicht neu laden, sondern die Funktion rekursiv für das nächste Element aufrufen
                                        processNextFramedElement();
                                    }, 3000); // 2000 Millisekunden (2 Sekunden) Verzögerung
                                } else if (alertElementRed) {
                                    clearInterval(interval);
                                    // Entfernt das aktuelle Element, falls ein roter Alert erscheint
                                    elements[0].remove();
                                    setTimeout(function() {
                                        // Nächstes Element verarbeiten
                                        processNextFramedElement();
                                    }, 7000); // 2000 Millisekunden (2 Sekunden) Verzögerung

                                }
                            }, 1000);
                        }, 3000); // 2000 Millisekunden (2 Sekunden) Verzögerung
                    }
                } else {
                    // Wenn keine Elemente mehr vorhanden sind, das Fallback ausführen
                    window.close();
                }
            }

            // Startet den Prozess
            processNextFramedElement();
        }
    }, 1000 * 6);


    if (window.location.href.includes("coinpayu.com/dashboard/view_active?id=")) {
        var intervalId = setInterval(function() {
            var waittime = document.querySelector("#app > div > div > div > div > div");
            if (waittime && waittime.style.width === "100%") {
                clearInterval(intervalId);
                setTimeout(function() {
                    window.close();
                }, 500);
            }
        }, 100);
    }

})();