Greasy Fork

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