在您安裝前,Greasy Fork镜像希望您了解本腳本包含“負面功能”,可能幫助腳本的作者獲利,而不能給你帶來任何收益。
作者從這份腳本獲得佣金, 例如透過重寫連結或提供優惠券代碼以加入推薦或附屬代碼
腳本的作者解釋:
Referral-Link is in this Script integrated.
Open and close Framed and Frameless Ads with Overlay for settings
目前為
// ==UserScript== // @name [Premium] Coinpayu.com // @namespace https://gf.qytechs.cn/users/1162863 // @version 3.2 // @description Open and close Framed and Frameless Ads with Overlay for settings // @author Andrewblood // @match *://*.coinpayu.com/* // @exclude *://*.coinpayu.com/login // @icon https://www.google.com/s2/favicons?sz=64&domain=coinpayu.com // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle // @grant window.close // @antifeature referral-link Referral-Link is in this Script integrated. // @license Copyright Andrewblood // ==/UserScript== (function() { 'use strict'; console.log('Script gestartet'); // CSS-Stile mit GM_addStyle hinzufügen GM_addStyle(` #customOverlay { position: fixed; bottom: 20px; right: 20px; width: 300px; background-color: rgba(0, 0, 0, 0.8); color: white; z-index: 10000; padding: 10px; box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; } #overlayTitle { font-size: 18px; font-weight: bold; margin-bottom: 15px; text-align: center; width: 100%; } .toggleSwitchWrapper { display: flex; align-items: center; cursor: pointer; margin-bottom: 10px; width: 100%; } .toggleSwitch { display: none; } .switchSpan { width: 60px; height: 30px; background-color: #ccc; position: relative; border-radius: 30px; transition: background-color 0.3s; margin-right: 10px; } .switchHandle { width: 26px; height: 26px; background-color: #fff; position: absolute; border-radius: 50%; top: 2px; left: 2px; transition: transform 0.3s; } .toggleText { flex-grow: 1; font-size: 16px; color: white; } `); // Overlay-Div erstellen var overlay = document.createElement('div'); overlay.id = 'customOverlay'; // Überschrift erstellen var title = document.createElement('div'); title.id = 'overlayTitle'; title.textContent = 'Coinpayu-Script'; overlay.appendChild(title); // Funktion zum Erstellen eines Toggle-Schalters function createToggleSwitch(id, labelText) { console.log(`Erstelle Toggle-Schalter für ${labelText}`); var toggle = document.createElement('label'); toggle.className = 'toggleSwitchWrapper'; var switchInput = document.createElement('input'); switchInput.type = 'checkbox'; switchInput.id = id; switchInput.className = 'toggleSwitch'; var switchSpan = document.createElement('span'); switchSpan.className = 'switchSpan'; var switchHandle = document.createElement('span'); switchHandle.className = 'switchHandle'; var toggleText = document.createElement('span'); toggleText.className = 'toggleText'; toggleText.textContent = labelText; toggle.appendChild(switchInput); toggle.appendChild(switchSpan); switchSpan.appendChild(switchHandle); toggle.appendChild(toggleText); overlay.appendChild(toggle); // Initialen Status des Schalters setzen updateToggle(switchInput, switchSpan, switchHandle); // Schalter-Event-Handler switchInput.addEventListener('change', function() { console.log(`Toggle ${id} geändert: ${this.checked}`); const isChecked = this.checked; GM_setValue(id + '_toggleStatus', isChecked); switchSpan.style.backgroundColor = isChecked ? '#4caf50' : '#ccc'; switchHandle.style.transform = isChecked ? 'translateX(30px)' : 'translateX(0)'; }); } // Funktion zum Aktualisieren des Toggle-Schalters function updateToggle(switchInput, switchSpan, switchHandle) { const isChecked = GM_getValue(switchInput.id + '_toggleStatus', false); switchInput.checked = isChecked; switchSpan.style.backgroundColor = isChecked ? '#4caf50' : '#ccc'; switchHandle.style.transform = isChecked ? 'translateX(30px)' : 'translateX(0)'; } // Drei Toggle-Schalter mit Texten erstellen createToggleSwitch('toggleSwitch1', 'Framed Ads'); createToggleSwitch('toggleSwitch2', 'Frameless Ads'); createToggleSwitch('toggleSwitch3', 'Close after work'); // Overlay zur Seite hinzufügen document.body.appendChild(overlay); // Funktion für das Schließen der Tabs 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(); }; // Referal Code einfügen if (window.location.href.includes("register")) { if (!window.location.href.includes("Andrewblood")) { window.location.replace("https://www.coinpayu.com/register?r=Andrewblood"); } } // Fenster von Framed Ad schließen 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() { console.log('Schließe Fenster von Framed Ad.'); window.close(); }, 500); } }, 100); } setTimeout(function() { console.log('Klicke auf #toViewAds'); document.querySelector("#toViewAds").click(); setTimeout(function() { console.log('Klicke auf das zweite Element in #viewads'); document.querySelector("#viewads > div:nth-child(2) > p", "#viewads > div.nav-head.dashboard-actived > p").click(); }, 500); }, 1000 * 2); // 1. Funktion für Framed Ads async function processFramedAds() { console.log('Starte Verarbeitung von Framed Ads'); var headlineElement = document.querySelector("#app > div > div.coinpayu-dashboard-content > div.main-panel > div > div > h6"); if (GM_getValue('toggleSwitch1_toggleStatus', false) && headlineElement.innerText.includes("Framed")) { return new Promise(resolve => { function processNextFramedElement() { console.log('Verarbeite nächsten Framed Ad Element'); var element = document.querySelector('.clearfix.ags-list-box:not(.gray-all)'); if (element) { 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(); 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() { processNextFramedElement(); }, 3000); } else if (alertElementRed) { clearInterval(interval); element.remove(); setTimeout(function() { processNextFramedElement(); }, 7000); } }, 1000); }, 3000); } } else { console.log('Framed Ads abgeschlossen.'); document.querySelector("#viewads > div:nth-child(1) > p").click(); setTimeout(function() { resolve(); }, 2000); } } processNextFramedElement(); }); } } // 2. Funktion für Frameless Ads async function processFramelessAds() { console.log('Starte Verarbeitung von Frameless Ads'); var headlineElement = document.querySelector("#app > div > div.coinpayu-dashboard-content > div.main-panel > div > div > h6"); if (GM_getValue('toggleSwitch2_toggleStatus', false) && headlineElement?.innerText.includes("Frameless")) { console.log('Frameless Ads Toggle ist aktiviert und die Überschrift ist vorhanden.'); return new Promise(resolve => { function processNextFramelessElement() { console.log('Verarbeite nächsten Frameless Ad Element'); var element = document.querySelector('.clearfix.ags-list-box:not(.gray-all)'); if (element) { 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(); unsafeWindow.open('', windowName).close(); 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() { processNextFramelessElement(); }, 3000); } else if (alertElementRed) { clearInterval(interval); element.remove(); setTimeout(function() { processNextFramelessElement(); }, 7000); } }, 1000); }, 3000); } } else { console.log('Keine weiteren Frameless Ads gefunden.'); resolve(); } } processNextFramelessElement(); }); } else { console.log('Frameless Ads Toggle ist nicht aktiviert oder Überschrift nicht vorhanden.'); } } // 3. Funktion für das Schließen nach der Arbeit oder Seiten-Neuladen nach 3 Stunden async function closeAfterWork() { console.log('Überprüfe, ob Schließen nach Arbeit aktiviert ist.'); if (GM_getValue('toggleSwitch3_toggleStatus', false)) { // Wenn der Toggle aktiviert ist, schließe das Fenster return new Promise(resolve => { setTimeout(function() { console.log('Schließe Fenster nach der Arbeit.'); window.close(); resolve(); }, 3000); // 3 Sekunden warten vor dem Schließen }); } else { // Wenn der Toggle nicht aktiviert ist, lade die Seite nach 3 Stunden neu return new Promise(resolve => { console.log('Lade die Seite nach 3 Stunden neu.'); setTimeout(function() { window.location.reload(); resolve(); }, 3 * 60 * 60 * 1000); // 3 Stunden in Millisekunden }); } } // Funktionen in Reihenfolge ausführen setTimeout(async function run() { console.log('Starte alle Funktionen nach 5 Sekunden'); await processFramedAds(); await processFramelessAds(); await closeAfterWork(); }, 5000); // 5 Sekunden warten, bevor die Funktionen ausgeführt werden })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址