Shortlink Dodger

Quickly bypasses short links to enhance your browsing experience. This script automatically navigates through common URL shorteners, saving you time and hassle with every click.

当前为 2024-10-04 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Shortlink Dodger
// @namespace    Shortlink Dodger
// @version      0.1
// @description  Quickly bypasses short links to enhance your browsing experience. This script automatically navigates through common URL shorteners, saving you time and hassle with every click.
// @author       AmineDev
// @license      All Rights Reserved
// @icon         https://i.ibb.co/N3cwK3X/shortlink-dodger.png
// @match        *://*/recaptcha/*
// @match        *://tpi.li/*
// @match        *://blogmystt.com/*
// @match        *://cety.app/*
// @match        *://fc-lc.xyz/*
// @match        *://gamezizo.com/*
// @match        *://forex-trnd.com/*
// @match        *://falpus.com/*
// @match        *://oii.la/*
// @match        *://wp2hostt.com/*
// @match        *://expertvn.com/*
// @match        *://ielts-isa.edu.vn/*
// @match        *://handydecor.com.vn/*
// @match        *://top10cafe.se/*
// @match        *://*.mega*.in/*
// @match        *://mitly.us/*
// @match        *://*.sonjuegosgratis.com/*
// @match        *://autodime.com/*
// @match        *://linx.cc/*
// @match        *://surflink.tech/*
// @match        *://coincroco.com/*
// @match        *://sox.link/*
// @match        *://shrinkme.ink/*
// @match        *://themezon.net/*
// @match        *://en.mrproblogger.com/*
// @run-at       document-end
// ==/UserScript==

(function() {
    'use strict';

    const buttonSelectors = [
        { type: 'a', value: ['btn.btn-hover.color-2.get-link'], interval: 1000 },
        { type: 'class', value: ['getmylink', 'btn.btn-success', 'g-recaptcha.btn.btn-primary', 'btn.btn-primary.btn-lg.get-link', 'button.link-button', 'yu-btn.yu-blue', 'btn.btn-danger.btn-lg.get-link', 'btnBgRed.get-link', 'btn.btn-success.btn-lg.get-link'], interval: 5000 },
        { type: 'class', value: ['btn-hover.color-1.btn-captcha', 'ni.ni-check-bold'], interval: 15000 },
        { type: 'class', value: ['btn-hover.color-1.btn-captcha'], interval: 20000 },
        { type: 'class', value: ['yu-btn.yu-blue', 'btn.btn-primary'], interval: 30000 },
        { type: 'id', value: ['continue', 'submit-button', 'invisibleCaptchaShortlink', 'next', 'scroll', 'overlay', 'glink', 'shortContainer', 'button1', 'btn2', 'tp-snp2'], interval: 5000 },
        { type: 'id', value: ['monetiza'], interval: 30000 }
    ];

    function clickButtons(selector) {
        if (selector.type === 'class') {
            selector.value.forEach(className => {
                const elements = document.querySelectorAll(`.${className}`);
                elements.forEach(element => {
                    if (element) {
                        if (element.tagName === 'A' && element.target === '_blank') {
                            element.target = '_self';
                        }
                        element.click();
                    }
                });
            });
        } else if (selector.type === 'id') {
            selector.value.forEach(id => {
                const element = document.getElementById(id);
                if (element) {
                    if (element.tagName === 'A' && element.target === '_blank') {
                        element.target = '_self';
                    }
                    element.click();
                }
            });
        } else if (selector.type === 'a') {
            selector.value.forEach(linkClass => {
                const elements = document.querySelectorAll(`a.${linkClass}`);
                elements.forEach(element => {
                    if (element) {
                        if (element.target === '_blank') {
                            element.target = '_self';
                        }
                        element.click();
                    }
                });
            });
        }
    }

    buttonSelectors.forEach(selector => {
        setInterval(() => {
            clickButtons(selector);
        }, selector.interval);
    });

    const textClicks = [
        { texts: ["Click here to continue"], delay: 5000 },
        { texts: ["Show Captcha Verification"], delay: 10000 }
    ];

    function clickByText(targetText) {
        const elements = document.querySelectorAll('*');
        elements.forEach(element => {
            if (element.textContent.trim() === targetText) {
                element.click();
            }
        });
    }

    textClicks.forEach(item => {
        setTimeout(() => {
            item.texts.forEach(text => {
                clickByText(text);
            });
        }, item.delay);
    });

})();

(function() {
    'use strict';

    const hiddenInputIDs = ['shortShort'];

    function useHiddenInputValues() {
        hiddenInputIDs.forEach(id => {
            const hiddenInput = document.getElementById(id);
            if (hiddenInput) {
                const value = hiddenInput.value;

                window.location.href = value;
            }
        });
    }

    setTimeout(useHiddenInputValues, 5000);

})();

(function() {
    'use strict';

    window.addEventListener('load', function() {
        setTimeout(() => {
            const button = document.querySelector('.recaptcha-checkbox-border');
            if (button) {
                button.click();
            }
        }, 3000);
    });
})();