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 提交的版本,檢視 最新版本

// ==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);
    });
})();