2024-02-15 01:34:19 +05:00
// ==UserScript==
2024-02-22 02:04:42 +05:00
// @name extra bypasses
2024-02-22 03:15:02 +05:00
// @description These bypasses are always merged into Bypass_All_Shortlinks.user.js
2024-02-15 01:34:19 +05:00
// @include /mundopolo.net/
2024-03-15 17:15:44 +05:00
// @include /onlypc.net\/out#!/
2024-02-15 01:34:19 +05:00
// @include /comohoy.com/
// @include /sphinxanime.com\/short/
2024-02-15 21:56:23 +05:00
// @include /japan-paw.net\/out/
2024-02-15 01:34:19 +05:00
// @include /link.manudatos.com\/#!/
2024-02-15 07:09:33 +05:00
// @include /(iconicblogger.com|segurosdevida.site)/
2024-02-15 04:56:17 +05:00
// @include /link.unlockner.com/
// @include /cybercityhelp.in/
// @include /www.akcartoons.in/
// @include /go.moonlinks.in/
2024-03-13 00:17:54 +05:00
// @include /shrinkme.(us|site)/
2024-02-20 04:31:52 +05:00
// @include /test.shrinkurl.org/
2024-02-15 18:11:51 +05:00
// @include /shareus.io/
2024-02-18 01:54:57 +05:00
// @include /shareus\.io\/go\?sid=/
2024-02-15 20:56:02 +05:00
// @include /(verpeliculasonline.org|subtituladas.com)\/enlace/
2024-02-15 21:49:02 +05:00
// @include /links.cuevana.ac\/short/
2024-02-15 22:14:49 +05:00
// @include /ouo.io/
2024-03-10 17:35:19 +05:00
// @include /exeo.app/
2024-02-16 06:59:04 +05:00
// @include /fc-lc.(xyz|com)/
2024-03-11 00:14:05 +05:00
// @include /tmail.io/
2024-02-16 04:45:46 +05:00
// @include /1v.to\/t/
2024-02-16 01:29:51 +05:00
// @include /linkspy.cc\/tr/
2024-03-17 05:26:49 +05:00
// @include /((cybertyrant|profitshort|technorozen|hubdrive.me|bestadvise4u|newztalkies|aiotechnical|cryptonewzhub|techvybes|wizitales|101desires|gdspike|caronwhaley|maxxfour).com|courselinkfree.us|10desires.(org|net)|theapknews.shop|trendzguruji.me|speedynews.xyz|nzarticles.pro)/
2024-02-16 02:32:38 +05:00
// @include /dropgalaxy.(com|co)\/drive/
2024-02-17 15:40:53 +05:00
// @include /short-ly.co/
2024-02-18 01:54:57 +05:00
// @include /shramikcard.in/
2024-02-18 05:56:31 +05:00
// @include /blogging.techworldx.net/
2024-02-18 17:51:04 +05:00
// @include /starsddl.me\/short/
// @include /tech.unblockedgames.world/
2024-02-19 05:17:23 +05:00
// @include /seriezloaded.com.ng\/sl-download\/\?link=/
2024-02-18 22:47:41 +05:00
// @include /www.itscybertech.com/
// @include /thegadgetking.in/
2024-03-15 04:05:01 +05:00
// @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/
2024-03-18 01:10:14 +05:00
// @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(bstlar.com)/
2024-02-26 20:50:44 +05:00
// @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(free-content.pro|(ebaticalfel|downbadleaks|megadropsz|megadumpz|stownrusis|iedprivatedqu).com)\/s\?/
// @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/
2024-02-19 19:25:54 +05:00
// @include /epicload.com\/files/
2024-02-20 05:59:53 +05:00
// @include /www.gtaall.com\/get-manual/
2024-02-20 20:19:32 +05:00
// @include /woowebtools.com|pallabmobile.in/
// @include /doodrive.com\/f/
2024-02-20 20:47:41 +05:00
// @include /ipamod.com\/redirect-to/
2024-02-20 22:38:32 +05:00
// @include /9xflix\.(\w+)\/m\/goto/
2024-02-21 00:07:37 +05:00
// @include /bookszone.in/
// @include /yoshare.net/
// @include /blog.disheye.com/
// @include /reminimod.co/
// @include /techrayzer.com/
// @include /techfizia.com/
// @include /tech5s.co/
// @include /ez4mods.com/
// @include /ez4short.com/
// @include /learnmany.in/
// @include /lksfy.in/
// @include /droplink.co/
// @include /lnks.primarchweb.in/
// @include /highkeyfinance.com/
2024-02-21 05:51:24 +05:00
// @include /toonhub4u.net\/redirect\/main.php\?url=/
2024-03-19 19:47:11 +05:00
// @include /mdsuuniversity.org|instander.me|jameen.xyz|dhamakamusic.ink|eternalcbse.i|financialstudy.me|(foreverhealth|newzwala.co|nhmgujarat|jobkijankari|jobwaala|learnwithsaif|lyricsx|smartsetkari|theringtonesworld|recruitmentrasta|mediniweb|pmyojanasarkari|netflixvip|mghindinews|gentletrail|w3hindi|ryzenmusic).in|(anumin|awolio|cgbsesupport|gptproguide|iplquotes|kaisekareblog|minijankari|news36tech|newsloti|odiamusicsong|sugargliderfaqs|picassoappk|geniuseducares|ndlifestylego|raidersixgameapk|sarkariexam365|potter-world|jankari4u|trancebazar|taazaalerts).com/
2024-02-21 06:15:50 +05:00
// @include /gplinks.co\/[^/#]+\/(?:#|\?pid=)/
2024-02-21 22:03:13 +05:00
// @include /aipebel.com/
// @include /raretoonsindia.rtilinks.com/
// @include /(do|fast).rtilinks.com/
// @include /vidhidepro.com\/d/
// @include /www.mirrored.to\/files\/(?!.*\?hash=)/
2024-02-22 01:12:10 +05:00
// @include /skyve.io/
2024-03-14 00:11:40 +05:00
// @include /(itradercoin|nichapk|easyworldbusiness|riveh).com/
2024-02-22 06:10:49 +05:00
// @include /blog.filepresident.com/
2024-02-22 06:30:52 +05:00
// @include /gyanigurus.net\/view/
2024-02-22 21:49:44 +05:00
// @include /mkvmoviespoint.casa\/goto/
// @include /w.linkspoint.net/
2024-02-23 07:21:54 +05:00
// @include /kingshortener.com/
2024-02-26 01:03:26 +05:00
// @include /gdslink.xyz/
2024-02-27 05:37:48 +05:00
// @include /financeyogi.net/
// @include /jrlinks.in/
// @include /go.tnshort.net/
2024-02-27 17:08:30 +05:00
// @include /www.4fnet.org\/goto/
2024-02-27 17:25:20 +05:00
// @include /(linkmo.net|adpayl.ink)\/[^?]+\?data=.+$/
2024-02-27 17:46:33 +05:00
// @include /musicc.xyz/
2024-03-01 23:06:54 +05:00
// @include /(cravesandflames|codesnse).com/
// @include /go.(cravesandflames|codesnse).com/
2024-03-10 17:35:19 +05:00
// @include /empebau.eu\/s/
2024-03-11 01:32:28 +05:00
// @include /cpmlink.net\/go/
2024-03-12 23:22:54 +05:00
// @include /10short.com/
// @include /zegtrends.com/
// @include /icutlink.com/
// @include /motakhokhara.blogspot.com/
// @include /xpshort.com/
2024-03-12 23:36:18 +05:00
// @include /jobzspk.xyz/
// @include /urls.cx/
2024-03-13 03:34:52 +05:00
// @include /sunci.net/
2024-03-14 00:22:51 +05:00
// @include /(adclicker.(io|info)|(discoveryultrasecure|yourihollier).com)\/url\/\#/
2024-03-13 19:46:53 +05:00
// @include /tiktokcounter.net/
2024-03-14 23:29:59 +05:00
// @include /minimilionario.com\/noticia.php\?token=/
2024-03-15 04:05:01 +05:00
// @include /usandoapp.com/
2024-03-15 15:17:11 +05:00
// @include /v2links.com/
2024-03-16 08:22:01 +05:00
// @include /techtnet.com/
2024-03-16 21:31:35 +05:00
// @include /asideway.com/
2024-03-16 21:54:07 +05:00
// @include /web1s.asia\/api-mode/
2024-03-16 21:31:35 +05:00
// @include /(linkvip|blitly).io/
2024-03-17 02:01:38 +05:00
// @include /^https:\/\/megalink.pro\/[a-zA-Z0-9]+$/
2024-03-22 12:01:14 +05:00
// @include /tii.la|oko.sh|shrinke.me|clk.wiki|techy.veganab.co|atglinks.com|linx.cc|get.megaurl.in/
2024-03-17 05:03:48 +05:00
// @include /shon.xyz/
2024-03-17 21:17:13 +05:00
// @include /veganab.co\/\?link=/
2024-03-17 21:45:48 +05:00
// @include /veganab.co/
// @include /camdigest.com/
2024-03-17 21:17:13 +05:00
// @include /tawda.xyz\/tag/
2024-03-17 22:06:27 +05:00
// @include /pastebin.com\/raw/
2024-03-19 05:54:59 +05:00
// @include /spacetica.com/
2024-03-19 16:46:11 +05:00
// @include /linegee.net|intercelestial.com/
2024-03-23 08:46:21 +05:00
// @include /loanoffering.in/
// @include /modijiurl.com/
2024-03-23 09:11:16 +05:00
// @include /4hi.in/
2024-03-23 09:20:42 +05:00
// @include /lnk.news/
2024-03-25 01:49:49 +05:00
// @include /imagereviser.com/
// @include /upshrink.com/
2024-02-15 01:34:19 +05:00
// @run-at document-start
// ==/UserScript==
2024-02-16 02:32:38 +05:00
// ----- Extra bypasses -----
2024-02-15 01:34:19 +05:00
( function ( ) {
'use strict' ;
const url = window . location . href
const redirect = finalUrl => window . location . assign ( finalUrl ) ;
2024-02-16 01:29:51 +05:00
const getParam = ( url , param ) => new URLSearchParams ( url ) . get ( param ) ;
2024-02-18 01:54:57 +05:00
const popupsToRedirects = ( ) => window . open = ( url , target , features ) => ( window . location . href = url , window ) ;
2024-02-16 02:32:38 +05:00
const afterDOMLoaded = ( callback ) => document . addEventListener ( 'DOMContentLoaded' , callback ) ;
2024-02-26 01:03:26 +05:00
const afterWindowLoaded = ( callback ) => window . addEventListener ( 'load' , callback ) ;
2024-03-17 22:06:27 +05:00
const isValidUrl = url => / ^ ( ? : https ? | ftp ) : \ / \ / ( ? : \ w + \ . ) { 1 , 3 } \ w + ( ? : \ / \ S * ) ? $ / . test ( url ) ;
2024-02-15 18:11:51 +05:00
const clickIfExists = ( selector ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector ) ; if ( button ) { clearInterval ( intervalId ) ; button . click ( ) ; } } , 1000 ) ; } ;
2024-02-17 15:40:53 +05:00
const redirectIfExists = ( selector ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector ) ; if ( button . href ) { clearInterval ( intervalId ) ; redirect ( button . href ) } } , 500 ) ; } ;
2024-02-15 18:11:51 +05:00
const clickIfExistsNonStop = ( selector ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector + ':not(.disabled)' ) ; if ( button ) { button . click ( ) ; } } , 500 ) ; } ;
2024-02-21 22:28:05 +05:00
const redirectIfNotDisabled = ( selector ) => { let intervalId = setInterval ( ( ) => { let linkButton = document . querySelector ( selector + ':not(.disabled)' ) ; if ( linkButton && ! linkButton . href . includes ( '/undefined' ) ) { clearInterval ( intervalId ) ; setTimeout ( function ( ) { redirect ( linkButton . href ) ; } , 500 ) } } , 500 ) ; } ;
2024-02-21 06:15:50 +05:00
const clickIfNotDisabled = ( buttonSelector ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( buttonSelector ) ; if ( ! button . hasAttribute ( 'disabled' ) && ! button . classList . contains ( 'disabled' ) ) { clearInterval ( intervalId ) ; setTimeout ( function ( ) { button . click ( ) ; } , 500 ) } } , 500 ) ; } ;
2024-02-18 05:56:31 +05:00
const checkElementVisible = element => element !== null && ! ! ( element . offsetWidth || element . offsetHeight || element . getClientRects ( ) . length ) && ( ! element . getAttribute ( 'style' ) || ! element . getAttribute ( 'style' ) . includes ( 'display:none' ) ) ;
const clickIfVisible = selector => { afterDOMLoaded ( function ( ) { let intervalId = setInterval ( ( ) => { let element = document . querySelector ( selector ) ; if ( checkElementVisible ( element ) ) { clearInterval ( intervalId ) ; element . click ( ) ; } } , 1000 ) ; } ) ; } ;
2024-03-13 19:46:53 +05:00
const preventForcedFocusOnWindow = ( ) => { window . mouseleave = true ; window . onmouseover = true ; document . hasFocus = function ( ) { return true ; } ; Object . defineProperty ( document , 'webkitVisibilityState' , { get ( ) { return 'visible' ; } } ) ;
Object . defineProperty ( document , 'visibilityState' , { get ( ) { return 'visible' ; } } ) ; window . addEventListener ( 'visibilitychange' , function ( e ) { e . stopImmediatePropagation ( ) ; } , true , true ) ;
window . addEventListener ( 'focus' , onfocus , true ) ; document . addEventListener ( 'visibilitychange' , function ( e ) { e . stopImmediatePropagation ( ) ; } , true , true ) ; Object . defineProperty ( document , 'hidden' , { get ( ) { return false ; } } ) ; } ;
2024-02-15 01:34:19 +05:00
2024-02-15 04:56:17 +05:00
//peliculasgd.net
2024-02-15 01:34:19 +05:00
/mundopolo.net/ . test ( url ) ? redirect ( decodeURIComponent ( atob ( atob ( atob ( url . split ( '#!' ) [ 1 ] ) ) ) ) ) : null ;
2024-02-15 04:56:17 +05:00
2024-03-15 17:15:44 +05:00
//programasvirtualespc.net
/onlypc.net\/out#!/ . test ( url ) ? redirect ( atob ( atob ( atob ( url . split ( '#!' ) [ 1 ] ) ) ) ) : null ;
2024-02-15 04:56:17 +05:00
//leak.sx & pornleaks.in
2024-02-15 01:34:19 +05:00
/comohoy.com/ . test ( url ) ? redirect ( atob ( url . split ( '?url=' ) [ 1 ] ) ) : null ;
2024-02-15 04:56:17 +05:00
//sphinxanime.com
2024-02-15 01:34:19 +05:00
/sphinxanime.com\/short/ . test ( url ) ? redirect ( atob ( url . split ( '?anonym=' ) [ 1 ] ) ) : null ;
2024-02-15 04:56:17 +05:00
2024-02-15 21:56:23 +05:00
//japan-paw.net
/japan-paw.net\/out/ . test ( url ) ? redirect ( atob ( url . split ( 'out/?' ) [ 1 ] ) ) : null ;
2024-02-15 04:56:17 +05:00
//pasteprivado.blogspot.com
2024-02-15 01:34:19 +05:00
/link.manudatos.com\/#!/ . test ( url ) ? redirect ( atob ( atob ( atob ( url . split ( '#!' ) [ 1 ] ) ) ) ) : null ;
2024-02-15 04:56:17 +05:00
2024-02-16 04:45:46 +05:00
//intercambiosvirtuales.org
2024-02-16 06:59:04 +05:00
/1v.to\/t/ . test ( url ) ? redirect ( atob ( atob ( atob ( atob ( atob ( url . split ( '/t/' ) [ 1 ] ) . replace ( '+P' , '' ) ) ) ) ) ) : null ;
2024-02-16 04:45:46 +05:00
2024-02-15 07:09:33 +05:00
//anime-world.in and mandranime.com
/(iconicblogger.com|segurosdevida.site)/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirect ( document . getElementById ( 'wpsafe-link' ) . querySelector ( 'a' ) . getAttribute ( 'onclick' ) . match ( /window\.open\('([^']*)'/ ) [ 1 ] ) } ) : null ;
2024-02-15 18:11:51 +05:00
2024-02-15 07:09:33 +05:00
//anime-world.in 2nd step
2024-02-15 04:56:17 +05:00
/link.unlockner.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn.get-link' ) } ) : null ;
//atozcartoonist.com
/cybercityhelp.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { document . querySelector ( '#username' ) . value = 'filler' } ) : null ;
/cybercityhelp.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { document . querySelector ( '#tp982' ) . click ( ) } ) : null ;
/cybercityhelp.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { document . querySelector ( 'button.tp-btn.tp-blue' ) . click ( ) } ) : null ;
/www.akcartoons.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { document . querySelector ( '#btn6 > button' ) . click ( ) } ) : null ;
/www.akcartoons.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirect ( document . querySelector ( 'a[href*="go.moonlinks.in"]' ) ) } ) : null ;
/go.moonlinks.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.btn' ) } ) : null ;
2024-02-15 07:09:33 +05:00
2024-03-16 08:22:01 +05:00
// linkneverdie.net
/techtnet.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#invisibleCaptchaShortlink' ) } ) : null ;
/techtnet.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '#originalLink' ) } ) : null ;
2024-02-15 18:11:51 +05:00
//shrinkme.us
2024-03-13 00:17:54 +05:00
/shrinkme.(us|site)/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#invisibleCaptchaShortlink' ) } ) : null ;
2024-02-15 18:11:51 +05:00
2024-02-20 04:31:52 +05:00
//test.shrinkurl.org https://github.com/FastForwardTeam/FastForward/issues/1365
/test.shrinkurl.org/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#invisibleCaptchaShortlink' ) } ) : null ;
/test.shrinkurl.org/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.get-link' ) } ) : null ;
2024-02-16 06:59:04 +05:00
//fc-lc
/fc-lc.(xyz|com)/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#invisibleCaptchaShortlink' ) } ) : null ;
2024-03-11 00:14:05 +05:00
// extra steps for some fc-lc cases: https://github.com/uBlockOrigin/uAssets/discussions/17361#discussioncomment-8736277
2024-03-18 03:32:09 +05:00
///tmail.io/.test(url) ? afterDOMLoaded(function() {clickIfExists('#next')}) : null;
///tmail.io/.test(url) ? afterDOMLoaded(function() {clickIfNotDisabled('#scroll')}) : null;
///tmail.io/.test(url) ? afterDOMLoaded(function() {clickIfNotDisabled('#glink')}) : null;
///tmail.io/.test(url) ? afterDOMLoaded(function() {clickIfNotDisabled('#surl')}) : null;
2024-02-16 04:45:46 +05:00
2024-03-11 01:32:28 +05:00
//cpmlink.net
/cpmlink.net\/go/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '#btn-main' ) } ) : null ;
2024-02-23 07:21:54 +05:00
//kingshortener.com (seen used in reidostorrents.com)
/kingshortener.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#invisibleCaptchaShortlink' ) } ) : null ;
/kingshortener.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn' ) } ) : null ;
2024-02-17 15:05:15 +05:00
//shareus.io https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/2
2024-02-15 18:11:51 +05:00
/shareus.io/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExistsNonStop ( '#root > div > main > div.main-container-1 > div.main-container-2 > div:nth-child(1) > div.adunit-container > button' ) } ) : null ;
2024-02-18 01:54:57 +05:00
// shareus.io (type 2) https://github.com/uBlockOrigin/uAssets/discussions/17361#discussioncomment-8501665
if ( /shareus\.io\/go\?sid=/ . test ( url ) ) {
popupsToRedirects ( ) ;
let selector = '#custom-root > div > div:nth-child(3) > div.flex.align-center.space-between.button-texts > button.MuiButtonBase-root.MuiButton-root.MuiButton-contained.MuiButton-containedPrimary.MuiButton-sizeLarge.MuiButton-containedSizeLarge.MuiButton-root.MuiButton-contained.MuiButton-containedPrimary.MuiButton-sizeLarge.MuiButton-containedSizeLarge.css-s7ybtv' ;
afterDOMLoaded ( function ( ) { setTimeout ( ( ) => { clickIfExists ( selector ) ; } , 1000 ) ; } )
}
2024-02-15 20:56:02 +05:00
//verpeliculasonline.org && subtituladas.com
/(verpeliculasonline.org|subtituladas.com)\/enlace/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirect ( document . getElementById ( 'link' ) . href . split ( '?s=' ) [ 1 ] ) } ) : null ;
2024-02-15 21:49:02 +05:00
//maxcine.net
/links.cuevana.ac\/short/ . test ( url ) ? afterDOMLoaded ( function ( ) {
var extractedUrl = document . documentElement . innerHTML . split ( '\n' ) . find ( line => line . includes ( "document.getElementById('contador').href = 'htt" ) ) . split ( "href" ) [ 1 ] . match ( /'([^']+)'/ ) [ 1 ] ;
extractedUrl . includes ( '?s=' ) ? redirect ( extractedUrl . split ( '?s=' ) [ 1 ] ) : redirect ( extractedUrl ) ;
} ) : null ;
2024-02-15 22:14:49 +05:00
//ouo.io
2024-02-20 20:47:41 +05:00
/ouo.io/ . test ( url ) && url . includes ( '?s=' ) ? redirect ( decodeURIComponent ( url . split ( '?s=' ) [ 1 ] ) ) : null ;
2024-02-15 22:14:49 +05:00
/ouo.io/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#btn-main' ) } ) : null ;
2024-03-10 17:35:19 +05:00
//exeo.app
/exeo.app/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#submit-button' ) } ) : null ;
2024-03-17 02:50:43 +05:00
// tii.la oko.sh final step
2024-03-22 12:01:14 +05:00
/tii.la|oko.sh|shrinke.me|clk.wiki|techy.veganab.co|atglinks.com|linx.cc|get.megaurl.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.get-link' ) } ) : null ;
2024-03-17 02:50:43 +05:00
2024-03-17 05:03:48 +05:00
// shon.xyz, seen in mega-descargas-serie.blogspot.com
/shon.xyz/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn-main' ) } ) : null ;
2024-02-22 07:05:47 +05:00
//vegamovies, worldfree4u, desiremovies.wales, hdhub4u.re ... https://github.com/uBlockOrigin/uAssets/discussions/17361#discussioncomment-8508217
2024-02-21 06:15:50 +05:00
const redirectOrClickIfExistsEnabledWithDelay = ( selector ) => { afterDOMLoaded ( function ( ) { //Wait for the page to load
let intervalId = setInterval ( ( ) => { //Check every 0.5s
let button = document . querySelector ( selector + ':not(.disabled)' ) ; //Check the element is not disabled
if ( button ) { setTimeout ( ( ) => { isValidUrl ( button . href ) ? redirect ( button . href ) : button . click ( ) ; } , 100 ) ; } //Redirect or click, with a 0.1s delay
} , 500 ) ; } ) ; } ;
2024-03-17 05:26:49 +05:00
if ( /((cybertyrant|profitshort|technorozen|hubdrive.me|bestadvise4u|newztalkies|aiotechnical|cryptonewzhub|techvybes|wizitales|101desires|gdspike|caronwhaley|maxxfour).com|courselinkfree.us|10desires.(org|net)|theapknews.shop|trendzguruji.me|speedynews.xyz|nzarticles.pro)/ . test ( url ) ) {
if ( url . includes ( '?r=' ) ) redirect ( atob ( url . split ( '?r=' ) [ 1 ] ) ) ;
else redirectOrClickIfExistsEnabledWithDelay ( '.rd_btn' ) ;
}
2024-02-22 00:08:24 +05:00
// worldfree4u
//bloggingvector.shop\/re/.test(url) ? redirect(atob(url.split('/re/')[1].split('?')[0])) : null; // not necessary, the site does this one by itself for now
2024-02-22 06:30:52 +05:00
// desiremovies.wales
/gyanigurus.net\/view/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#show_button' ) } ) : null ;
2024-02-20 19:06:07 +05:00
//ovagames.com - linkspy.cc & clicksfly.com|shrinkme.io|clk.sh|shrinkearn.com|clk.asia|clk.wiki concatenated - https://github.com/FastForwardTeam/FastForward/issues/1352
2024-02-16 01:29:51 +05:00
if ( /linkspy.cc\/tr/ . test ( url ) ) {
var decodedUrl = atob ( url . split ( '/tr/' ) [ 1 ] ) ;
var urlParam = getParam ( decodedUrl , 'url' ) ;
2024-02-20 19:06:07 +05:00
urlParam ? redirect ( atob ( urlParam ) ) : redirect ( decodedUrl ) ;
2024-02-16 01:29:51 +05:00
}
2024-02-17 15:05:15 +05:00
//dropgalaxy https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/2
2024-02-16 02:32:38 +05:00
/dropgalaxy.(com|co)\/drive/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#method_free' ) } ) : null ;
/dropgalaxy.(com|co)\/drive/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#downloadbtn' ) } ) : null ;
/dropgalaxy.(com|co)\/drive/ . test ( url ) ? afterDOMLoaded ( function ( ) {
var intervalId = setInterval ( function ( ) { // Keep checking if link is available, every 1s
var downloadUrl = document . getElementById ( 'dllink' ) . getAttribute ( 'action' ) ;
if ( downloadUrl ) {
clearInterval ( intervalId ) ;
alert ( 'Press OK to go to the download link:\n' + downloadUrl ) ;
redirect ( downloadUrl )
}
} , 1000 ) ;
} ) : null ;
2024-02-17 15:40:53 +05:00
// short-ly.co https://github.com/FastForwardTeam/FastForward/issues/1363
/short-ly.co/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '.btn-secondary' ) } ) : null ;
2024-02-18 01:54:57 +05:00
// multimovies.uno
//##Intermediate buttons
const handleShamikcardButtons = ( buttonSelector , targetText ) => afterDOMLoaded ( ( ) => setInterval ( ( ) => { const button = document . querySelector ( buttonSelector ) ; if ( button && button . textContent . includes ( targetText ) && ! ( targetText == 'Get Link' ) ) { setTimeout ( ( ) => button . click ( ) , 500 ) ; } } , 2000 ) ) ;
/shramikcard.in/ . test ( url ) ? handleShamikcardButtons ( '#topButton' , 'Click to Continue' ) : null ;
/shramikcard.in/ . test ( url ) ? handleShamikcardButtons ( '#topButton' , 'Continue' ) : null ;
/shramikcard.in/ . test ( url ) ? handleShamikcardButtons ( '#bottomButton' , 'Click to Continue' ) : null ;
/shramikcard.in/ . test ( url ) ? handleShamikcardButtons ( '#bottomButton' , 'Continue' ) : null ;
//##Final button
/shramikcard.in/ . test ( url ) ? ( ( ) => afterDOMLoaded ( ( ) => setInterval ( ( ) => { const button = document . querySelector ( '#bottomButton' ) ; if ( button && button . textContent . includes ( 'Get Link' ) && button . style . display === 'block' ) { setTimeout ( ( ) => button . click ( ) , 2000 ) ; } } , 1000 ) ) ) ( ) : null ; //Final button
2024-02-22 06:56:48 +05:00
// ssrmovies.rent mkvhub.rent
2024-02-18 05:56:31 +05:00
/blogging.techworldx.net/ . test ( url ) ? clickIfVisible ( '.wait > center:nth-child(1) > img:nth-child(1)' ) : null ;
/blogging.techworldx.net/ . test ( url ) ? clickIfVisible ( '#generater > img:nth-child(1)' ) : null ;
/blogging.techworldx.net/ . test ( url ) ? clickIfVisible ( '#showlink' ) : null ;
2024-02-18 17:51:04 +05:00
// starsddl.me
/starsddl.me\/short\/\?anonym=/ . test ( url ) ? redirect ( atob ( url . split ( '?anonym=' ) [ 1 ] ) ) : null ;
2024-02-22 19:04:30 +05:00
// uhdmovies.us (fixed in upstream. Disabling except for the redirect, because it avoids the popups, which are often blocked by browsers)
// /tech.unblockedgames.world/.test(url) ? afterDOMLoaded(function() {clickIfExists('span.block > a:nth-child(1)')}) : null;
// /tech.unblockedgames.world/.test(url) ? afterDOMLoaded(function() {clickIfExists('#verify_button')}) : null;
// /tech.unblockedgames.world/.test(url) ? afterDOMLoaded(function() {clickIfExists('#verify_button2')}) : null;
2024-02-18 17:51:04 +05:00
/tech.unblockedgames.world/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '#two_steps_btn' ) } ) : null ;
2024-02-18 22:13:28 +05:00
// seriezloaded.com.ng
2024-02-19 05:17:23 +05:00
/seriezloaded.com.ng\/sl-download\/\?link=/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirect ( document . querySelector ( '.sl-button' ) . getAttribute ( 'onclick' ) . match ( /'(https:\/\/[^']+)'/ ) [ 1 ] ) } ) : null ;
2024-02-18 22:13:28 +05:00
2024-02-18 22:47:41 +05:00
// privatemoviez.baby
/www.itscybertech.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( 'a.button' ) } ) : null ;
/www.itscybertech.com/ . test ( url ) ? clickIfVisible ( '#gtbtn2' ) : null ;
/www.itscybertech.com/ . test ( url ) ? clickIfVisible ( '.download' ) : null ;
/thegadgetking.in/ . test ( url ) ? popupsToRedirects ( ) && afterDOMLoaded ( function ( ) { clickIfExists ( '#openbtn' ) } ) : null ;
2024-03-15 04:05:01 +05:00
// Linkvertise
2024-03-18 01:10:14 +05:00
const solveThroughBypassCity = ( linkShortenerUrl ) => { if ( ! /(bypass.city|adbypass.org)/ . test ( linkShortenerUrl ) ) { redirect ( 'https://adbypass.org/bypass?bypass=' + encodeURIComponent ( linkShortenerUrl ) ) } } ;
2024-03-15 04:05:01 +05:00
if ( /linkvertise.com|(linkvertise|link-to).net/ . test ( url ) ) {
//solve easy case locally
let rParam = new URLSearchParams ( window . location . search ) . get ( 'r' ) ;
if ( rParam ) {
redirect ( atob ( rParam ) ) ;
// solve hard case through bypass.city
} else {
solveThroughBypassCity ( url ) ;
}
}
2024-02-19 08:31:33 +05:00
2024-03-18 01:10:14 +05:00
// bstlar.com
/bstlar.com/ . test ( url ) ? solveThroughBypassCity ( url ) : null ;
2024-02-26 20:50:44 +05:00
// Ad-maven (optionally solve through bypass.city, but currently solved through adbypass.eu)
// /^(https?:\/\/)(?!(bypass.city|adbypass.org))(free-content.pro|(ebaticalfel|downbadleaks|megadropsz|megadumpz|stownrusis|iedprivatedqu).com)\/s\?/.test(url) ? solveThroughBypassCity(url) : null;
2024-03-10 17:35:19 +05:00
// empebau.eu used by adbypass.eu
/empebau.eu\/s/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '#skip > p:nth-child(1) > a:nth-child(1)' ) } ) : null ;
2024-02-26 20:50:44 +05:00
// Loot-links (optionally solve through bypass.city, but currently solved locally)
// /^(https?:\/\/)(?!(bypass.city|adbypass.org))(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/.test(url) ? solveThroughBypassCity(url) : null;
2024-02-26 17:08:48 +05:00
2024-02-19 19:25:54 +05:00
// Epicload (seen used in t.me/joinchat/3cfq_APl8Hs4N2Ux)
/epicload.com\/files/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '.btn-primary' ) } ) : null ;
/epicload.com\/files/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '.btn-getlink' ) } ) : null ;
2024-02-20 20:19:32 +05:00
// mirrorace, doodrive, tested in fluxyrepacks.site
/woowebtools.com|pallabmobile.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExistsNonStop ( '.hv-grid > div:nth-child(2) > div:nth-child(1) > form:nth-child(2) > button:nth-child(2)' ) } ) : null ; //continue button
/woowebtools.com|pallabmobile.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExistsNonStop ( 'body > div:nth-child(5) > div:nth-child(1) > div:nth-child(1) > p:nth-child(4) > button:nth-child(1)' ) } ) : null ; //close anti-adblock banner
/doodrive.com\/f/ . test ( url ) ? window . addEventListener ( "load" , function ( event ) { setTimeout ( function ( ) { clickIfExists ( 'button.uk-button-primary:nth-child(1)' ) } , 1000 ) } ) : null ; //continue button
2024-02-20 22:38:32 +05:00
// taodung.com
2024-02-20 20:47:41 +05:00
/ipamod.com\/redirect-to/ . test ( url ) && url . includes ( '?s=' ) ? redirect ( decodeURIComponent ( url . split ( '?s=' ) [ 1 ] ) ) : null ;
2024-02-20 22:38:32 +05:00
// 9xflix.business
/9xflix\.(\w+)\/m\/goto/ . test ( url ) ? redirect ( url . split ( '/goto/' ) [ 1 ] ) : null ;
2024-02-21 00:07:37 +05:00
// animeacademy.in
/highkeyfinance.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#wpsafelinkhuman' ) } ) : null ;
/highkeyfinance.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#wpsafe-link > a:nth-child(1)' ) } ) : null ;
/tech5s.co/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#go_d2' ) } ) : null ;
/ez4mods.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#go_d' ) } ) : null ;
/ez4short.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.btn' ) } ) : null ;
/bookszone.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#tp98' ) } ) : null ;
/bookszone.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '#btn6' ) } ) : null ;
/learnmany.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#tp98' ) } ) : null ;
/learnmany.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '#btn6' ) } ) : null ;
/yoshare.net/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( 'input.btn' ) } ) : null ;
/yoshare.net/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn6' ) } ) : null ;
/reminimod.co/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#wpsafe-link > a:nth-child(1)' ) } ) : null ;
/blog.disheye.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#gourl' ) } ) : null ;
/techrayzer.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#link' ) } ) : null ;
/techrayzer.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn6' ) } ) : null ;
/techrayzer.com\/insurance/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn--bg-primary' ) } ) : null ;
/techfizia.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#fizia-btn-after > center:nth-child(1) > a:nth-child(1) > button:nth-child(1)' ) } ) : null ;
/lksfy.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.btn' ) } ) : null ;
/droplink.co/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.btn' ) } ) : null ;
/lnks.primarchweb.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn--bg-primary' ) } ) : null ;
2024-02-21 05:51:24 +05:00
// toonhub4u.net
/toonhub4u.net\/redirect\/main.php\?url=/ . test ( url ) ? redirect ( atob ( url . split ( 'url=' ) [ 1 ] ) ) : null ;
2024-03-21 01:14:25 +05:00
// gplinks, used in psa.wf sometimes, changes domains daily, use https://greasyfork.org/scripts/490365 instead
2024-03-19 19:47:11 +05:00
if ( /mdsuuniversity.org|instander.me|jameen.xyz|dhamakamusic.ink|eternalcbse.i|financialstudy.me|(foreverhealth|newzwala.co|nhmgujarat|jobkijankari|jobwaala|learnwithsaif|lyricsx|smartsetkari|theringtonesworld|recruitmentrasta|mediniweb|pmyojanasarkari|netflixvip|mghindinews|gentletrail|w3hindi|ryzenmusic).in|(anumin|awolio|cgbsesupport|gptproguide|iplquotes|kaisekareblog|minijankari|news36tech|newsloti|odiamusicsong|sugargliderfaqs|picassoappk|geniuseducares|ndlifestylego|raidersixgameapk|sarkariexam365|potter-world|jankari4u|trancebazar|taazaalerts).com/ . test ( url ) ) {
2024-03-17 19:46:09 +05:00
const clickIfVisible2 = ( selector ) => setInterval ( ( ) => { const button = document . querySelector ( selector ) ; if ( button && button . style . display === 'block' ) { setTimeout ( function ( ) { button . click ( ) } , 500 ) ; ; clearInterval ( intervalId ) ; } } , 1000 ) ;
const clickIfLinkIsReady = buttonSelector => setInterval ( ( ) => { const button = document . querySelector ( buttonSelector ) ; if ( button && button . getAttribute ( 'href' ) !== '#' ) setTimeout ( function ( ) { button . click ( ) } , 500 ) ; ; } , 1000 ) ;
2024-03-13 23:49:48 +05:00
afterDOMLoaded ( function ( ) {
count = 0 ; //Skip the timer
clickIfVisible2 ( '#VerifyBtn' ) ;
clickIfLinkIsReady ( '#NextBtn' ) ;
} ) ;
}
2024-03-17 02:11:49 +05:00
/gplinks.co\/[^/#]+\/(?:#|\?pid=)/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#link-btn > a' ) } ) : null ;
2024-02-21 06:15:50 +05:00
2024-03-21 01:14:25 +05:00
// gtlinks, used in toonsouthindia.com
/tech.hipsonyc.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '.bt-success' ) } ) : null ;
/tech.hipsonyc.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#popup-button' ) } ) : null ;
/tech.hipsonyc.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#gotolink' ) } ) : null ;
/golink.gyanitheme.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.get-link' ) } ) : null ;
2024-03-17 21:17:13 +05:00
// https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/10
2024-03-17 21:45:48 +05:00
// /veganab.co\/\?link=/.test(url) ? redirect('https://za.gl/' + url.split('?link=')[1]) : null;
// https://greasyfork.org/en/scripts/431691-bypass-all-shortlinks/discussions/165265
/veganab.co/ . test ( url ) ? popupsToRedirects ( ) : null ;
/veganab.co/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( 'button.btn-hover:nth-child(2)' ) } ) : null ;
const extractLinkFromButtonOnclick = buttonElement => buttonElement . getAttribute ( "onclick" ) . match ( /window\.open\('([^']+)'/ ) [ 1 ] ;
const redirectToOnclickIfExists = ( selector ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector ) ; if ( button ) { clearInterval ( intervalId ) ; redirect ( extractLinkFromButtonOnclick ( button ) ) } } , 500 ) ; } ;
/camdigest.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectToOnclickIfExists ( '#wpsafe-link > a:nth-child(1) > button:nth-child(1)' ) } ) : null ;
2024-03-18 00:17:47 +05:00
/pastebin.com\/raw/ . test ( url ) ? afterDOMLoaded ( function ( ) { const rawContent = document . body . textContent . trim ( ) ; isValidUrl ( rawContent ) ? setTimeout ( ( ) => { redirect ( rawContent ) } , 1500 ) : null ; } ) : null ; //for firefox, with afterDOMLoaded (must be first)
/pastebin.com\/raw/ . test ( url ) ? ! function ( ) { const rawContent = document . body . textContent . trim ( ) ; isValidUrl ( rawContent ) ? setTimeout ( ( ) => { redirect ( rawContent ) } , 1500 ) : null ; } ( ) : null ; //for chrome, without afterDOMLoaded (must be second)
2024-03-17 21:45:48 +05:00
2024-03-17 21:17:13 +05:00
const clickIfCorrectText = ( selector , textContent ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector ) ; if ( button && button . innerText . includes ( textContent ) ) { clearInterval ( intervalId ) ; setTimeout ( ( ) => { button . click ( ) ; } , 500 ) ; } } , 500 ) ; } ;
2024-03-19 19:49:52 +05:00
/tawda.xyz\/tag/ . test ( url ) ? preventForcedFocusOnWindow ( ) : null ;
2024-03-17 21:17:13 +05:00
/tawda.xyz\/tag/ . test ( url ) ? popupsToRedirects ( ) : null ;
/tawda.xyz\/tag/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfCorrectText ( '#continueButton' , 'Click to continue' ) } ) : null ;
2024-02-21 22:45:21 +05:00
// rareanimes.net
2024-02-21 22:03:13 +05:00
/aipebel.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#wpsafelinkhuman' ) } ) : null ;
/aipebel.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#wpsafe-generate > a > img' ) } ) : null ;
/aipebel.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#image3' ) } ) : null ;
/raretoonsindia.rtilinks.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn' ) } ) : null ;
2024-02-21 22:45:21 +05:00
///(do|fast).rtilinks.com/.test(url) ? window.addEventListener("load", function(event) {redirectIfExists('a[class^="rti_btn"]')}) : null; //dont bypass because it might give streaming option
///vidhidepro.com\/d/.test(url) ? afterDOMLoaded(function() {clickIfExists('body > main > div > center > div > div > a > span')}) : null; //maybe shouldnt autoclick this one
///vidhidepro.com\/d/.test(url) ? afterDOMLoaded(function() {clickIfExists('#F1 > button > div > div:nth-child(1) > b')}) : null; //maybe shouldnt autoclick this one
2024-02-21 22:03:13 +05:00
// mirrored.to seen in rareanimes.net
/www.mirrored.to\/files\/(?!.*\?hash=)/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( 'body > div.container.dl-width > div:nth-child(4) > div > a' ) } ) : null ;
2024-02-22 01:12:10 +05:00
// skyve.io file host, seen on dodi-repacks.site
2024-02-22 02:04:42 +05:00
const clickIfExistsWithConfirmation = ( selector ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector ) ; if ( button ) { clearInterval ( intervalId ) ; if ( confirm ( 'Press OK to download.' ) ) { button . click ( ) ; } } } , 500 ) ; } ;
2024-02-22 01:12:10 +05:00
/skyve.io/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#method_free' ) } ) : null ;
2024-03-11 00:34:42 +05:00
// /skyve.io/.test(url) ? afterDOMLoaded(function() {clickIfExistsWithConfirmation('.bicon')}) : null; //download button
2024-02-22 01:12:10 +05:00
2024-03-14 00:11:40 +05:00
// toonworldtamil.net
///(itradercoin|nichapk|easyworldbusiness|riveh).com\/verify\/\?/.test(url) ? redirect('https://blog.filepresident.com/' + url.split('/?')[1]) : null; doesnt work, the site doesnt let you get directly to that URL
if ( /(itradercoin|nichapk|easyworldbusiness|riveh).com/ . test ( url ) ) {
const redirectIfVisible = ( selector ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector ) ; if ( button && ! button . getAttribute ( 'style' ) . includes ( 'display:none' ) ) { clearInterval ( intervalId ) ; redirect ( button . href ) } } , 500 ) ; } ;
const redirectIfVisible2 = ( selector ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector ) ; if ( button && button . getAttribute ( 'style' ) . includes ( 'block' ) ) { clearInterval ( intervalId ) ; redirect ( button . querySelector ( 'a' ) . href ) } } , 500 ) ; } ;
afterDOMLoaded ( function ( ) {
redirectIfVisible ( '#yuidea-btn-after' ) ; //Step 1
count = 0 ; // skip timer
redirectIfVisible2 ( '#yuidea-snp' ) ; // Steps 2-3
} ) ; }
2024-02-22 06:10:49 +05:00
/blog.filepresident.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( 'a.btn' ) } ) : null ;
2024-02-22 21:49:44 +05:00
// mkvmoviespoint.casa
/mkvmoviespoint.casa\/goto/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( 'body > div:nth-child(7) > a:nth-child(1)' ) } ) : null ;
/w.linkspoint.net/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '.btnx' ) } ) : null ;
2024-02-26 01:03:26 +05:00
// moviehunt.us
/gdslink.xyz/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirect ( document . querySelector ( '.main-wrap > form:nth-child(2) > input:nth-child(1)' ) . value ) } ) : null ;
2024-02-27 05:37:48 +05:00
// link.tnshort.net - https://github.com/FastForwardTeam/FastForward/issues/1368
/financeyogi.net/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn5' ) } ) : null ;
/financeyogi.net/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn2' ) } ) : null ;
/jrlinks.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn1' ) } ) : null ;
/jrlinks.in/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn2' ) } ) : null ;
/go.tnshort.net/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn' ) } ) : null ;
2024-02-27 17:08:30 +05:00
// 4fnet.org - https://github.com/FastForwardTeam/FastForward/issues/1298
/www.4fnet.org\/goto/ . test ( url ) ? redirect ( atob ( url . split ( '/goto/' ) [ 1 ] ) ) : null ;
2024-02-27 17:25:20 +05:00
// linkmo.net / adpayl.ink - https://github.com/FastForwardTeam/FastForward/issues/1291 / https://github.com/FastForwardTeam/FastForward/issues/1290
/(linkmo.net|adpayl.ink)\/[^?]+\?data=.+$/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn' ) } ) : null ;
2024-02-27 17:22:11 +05:00
2024-02-27 17:46:33 +05:00
// musicc.xyz - https://github.com/FastForwardTeam/FastForward/issues/1234 (note: this one is already bypassed by the original script, because it runs on every domain. It was just necessary to let the script run on this domain)
/musicc.xyz/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn' ) } ) : null ;
2024-03-01 23:06:54 +05:00
// zshort.net, shotzon.com - https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/5
/(cravesandflames|codesnse).com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( 'button.btn:nth-child(1)' ) } ) : null ;
/go.(cravesandflames|codesnse).com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn' ) } ) : null ;
2024-03-15 15:17:11 +05:00
// olamovies.bar - https://v2links.me/q1z4ssolam //add stuff missing from the main script
/v2links.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.get-link' ) } ) : null ;
// psa.wf, olamovies.bar, https://ez4short.com/ar02kkolam - (adding here stuff missing from the main script)
2024-03-13 19:46:53 +05:00
/tiktokcounter.net/ . test ( url ) ? preventForcedFocusOnWindow ( ) : null ;
2024-03-15 15:17:11 +05:00
// /tiktokcounter.net/.test(url) ? afterDOMLoaded(function() {wT9982 = 0;}) : null; //Skip the timer
// const clickTikTokCounterButtons = () => { let buttonSelector = 'button#cbt.btn.btn-warningbtn.btn-primary'; let intervalId = setInterval(() => { let button = document.querySelector(buttonSelector); if (!button.hasAttribute('disabled') && button.innerHTML.includes('Continue')) { clearInterval(intervalId); isHoverDone = true; setTimeout(function() { button.click();}, 500) } }, 500); };
// /tiktokcounter.net/.test(url) ? afterDOMLoaded(function() {clickTikTokCounterButtons()}) : null;
2024-03-13 20:27:40 +05:00
2024-03-15 15:17:11 +05:00
// psa.wf
2024-03-12 23:22:54 +05:00
/10short.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '.btn' ) } ) : null ;
/zegtrends.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '.bsub' ) } ) : null ;
/zegtrends.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#go1' ) } ) : null ;
/icutlink.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn' ) } ) : null ;
/motakhokhara.blogspot.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExistsNonStop ( 'a.safeb' ) } ) : null ;
/motakhokhara.blogspot.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( '#safesub' ) } ) : null ;
/xpshort.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.btn' ) } ) : null ;
2024-03-12 23:36:18 +05:00
/jobzspk.xyz/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn1' ) } ) : null ;
/jobzspk.xyz/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn2' ) } ) : null ;
/jobzspk.xyz/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn4' ) } ) : null ;
/jobzspk.xyz/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#btn5' ) } ) : null ;
/urls.cx/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '.video-button' ) } ) : null ;
2024-03-12 23:22:54 +05:00
2024-03-13 03:34:52 +05:00
//suncy.net (upfiles.com) (seen used in fiuxy2.co)
/sunci.net/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfNotDisabled ( 'button#link-button.btn-primary:not(.btn-download)' ) } ) : null ;
2024-03-13 05:50:07 +05:00
// AdClicker (used in animesgd.net and many others)
2024-03-14 00:22:51 +05:00
if ( /(adclicker.(io|info)|(discoveryultrasecure|yourihollier).com)\/url\/\#/ . test ( url ) ) {
2024-03-13 05:50:07 +05:00
var decodedUrl = decodeURIComponent ( atob ( atob ( atob ( url . split ( '/url/#' ) [ 1 ] ) ) ) ) ;
2024-03-13 06:53:55 +05:00
if ( decodedUrl . includes ( '&url=' ) ) { decodedUrl = decodedUrl . split ( '&' ) [ 1 ] ; }
var urlParam = new URLSearchParams ( decodedUrl ) . get ( 'url' ) ;
if ( urlParam ) { redirect ( urlParam ) ; }
2024-03-13 05:50:07 +05:00
}
2024-03-14 23:29:59 +05:00
// filmesmega.online
/minimilionario.com\/noticia.php\?token=/ . test ( url ) ? redirect ( atob ( url . split ( '?token=' ) [ 1 ] ) ) : null ;
2024-03-15 04:05:01 +05:00
// ontorrent.org
/usandoapp.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( '.DownloadButOn' ) } ) : null ;
2024-03-16 21:31:35 +05:00
// web1s - examples: (nsfw) https://github.com/AdguardTeam/AdguardFilters/issues/154319 / https://t.me/s/cosplaydistrict / https://discord.com/invite/mtMGnm9aTd
2024-03-16 21:54:07 +05:00
/web1s.asia\/api-mode/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#submit' ) } ) : null ;
/web1s.asia\/api-mode/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#submit-button' ) } ) : null ;
2024-03-16 21:31:35 +05:00
// asideway sub-link-shortener. example: https://asideway.com/normal/j5GLNIDiHq/
/asideway.com/ . test ( url ) ? afterWindowLoaded ( function ( ) { count = 0 ; } ) : null ;
const clickIfVisible4 = ( selector , textContent ) => { let intervalId = setInterval ( ( ) => { let button = document . querySelector ( selector ) ; if ( button && button . style . display . includes ( 'block' ) && button . innerText . includes ( textContent ) && ! button . hasAttribute ( 'disabled' ) ) { clearInterval ( intervalId ) ; setTimeout ( ( ) => { button . click ( ) ; } , 500 ) ; } } , 500 ) ; } ;
/asideway.com/ . test ( url ) ? afterWindowLoaded ( function ( ) { clickIfVisible4 ( '#link1s' , '1/2' ) } ) : null ;
/asideway.com/ . test ( url ) ? afterWindowLoaded ( function ( ) { clickIfVisible4 ( '#link1s' , '2/2' ) } ) : null ;
// linkvip.io blitly.io sub-link-shortener. example: https://linkvip.io/redirect?api=9VAupEozzdsn3k6tMTcLWL4DJ&url=https://drive.google.com/drive/folders/1vvSM0OXgnZTcALJeThAkIRxzRBRsBGjm?usp=sharing
/(linkvip|blitly).io/ . test ( url ) ? url . includes ( 'url=' ) ? redirect ( new URL ( url ) . searchParams . get ( 'url' ) ) : null : null ;
2024-03-17 02:20:30 +05:00
// megalink.pro - https://greasyfork.org/en/scripts/431691-bypass-all-shortlinks/discussions/235270 - https://megalink.pro/pD6wK (nsfw)
/megalink.pro\/[a-zA-Z0-9]+$/ . test ( url ) ? afterWindowLoaded ( function ( ) { setTimeout ( function ( ) { clickIfNotDisabled ( 'a.btn:nth-child(1)' ) } , 3000 ) } ) : null ;
2024-03-19 05:54:59 +05:00
//pahe.ink final step
2024-03-19 16:46:11 +05:00
/linegee.net|intercelestial.com/ . test ( url ) ? preventForcedFocusOnWindow ( ) : null ;
2024-03-19 06:18:42 +05:00
/spacetica.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfExists ( 'center a' ) } ) : null ;
2024-03-19 05:54:59 +05:00
2024-03-23 08:46:21 +05:00
// https://github.com/uBlockOrigin/uAssets/discussions/17361#discussioncomment-8878055
if ( /loanoffering.in/ . test ( url ) ) { afterDOMLoaded ( function ( ) {
clickIfExists ( '#startButton' ) ; clickIfExists ( '#verifybtn' ) ; clickIfExists ( '#tp98' ) ;
clickIfExists ( '#tp4' ) ; clickIfExists ( '#tp3' ) ; clickIfExists ( '#rtg-snp2' ) ; } ) }
/modijiurl.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( '#okiiii' ) } ) : null ;
2024-03-23 09:11:16 +05:00
// https://github.com/uBlockOrigin/uAssets/discussions/17361#discussioncomment-8884375
if ( /4hi.in/ . test ( url ) ) { afterDOMLoaded ( function ( ) {
clickIfExists ( '.btn-warning:not(.btn-captcha)' ) ;
clickIfNotDisabled ( '#invisibleCaptchaShortlink' ) ;
redirectIfNotDisabled ( 'a.get-link' ) ; } ) }
2024-03-23 09:20:42 +05:00
// https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/12
/lnk.news/ . test ( url ) ? afterDOMLoaded ( function ( ) { clickIfExists ( '#csubmit' ) } ) : null ;
2024-03-25 01:49:49 +05:00
// https://github.com/uBlockOrigin/uAssets/discussions/17361#discussioncomment-8893133
const afterElementVisible = ( selector , callback ) => { let intervalId = setInterval ( ( ) => { let element = document . querySelector ( selector ) ; if ( element && ( element . style . display . includes ( 'block' ) || ! element . style . display . includes ( 'none' ) ) ) { clearInterval ( intervalId ) ; callback ( ) ; } } , 500 ) ; } ;
/imagereviser.com/ . test ( url ) ? preventForcedFocusOnWindow ( ) : null ;
/imagereviser.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { afterElementVisible ( '#second_btn_div' , function ( ) { document . querySelector ( '#bottom_btn' ) . click ( ) ; } ) } ) : null ;
/upshrink.com/ . test ( url ) ? afterDOMLoaded ( function ( ) { redirectIfNotDisabled ( 'a.get-link' ) } ) : null ;
2024-02-20 05:59:53 +05:00
} ) ( ) ;
( function ( ) {
//'use strict';
const url = window . location . href
const boostTimers = ( ) => { const FsT = window . setTimeout ; const FsI = window . setInterval ;
Object . defineProperty ( window , 'setTimeout' , { value : function ( func , delay ) { if ( delay === 1000 ) { delay = 50 ; } return FsT . apply ( this , arguments ) ; } } ) ;
Object . defineProperty ( window , 'setInterval' , { value : function ( func , delay ) { if ( delay === 1000 ) { delay = 50 ; } return FsI . apply ( this , arguments ) ; } } ) ;
} ;
2024-02-22 02:04:42 +05:00
2024-02-20 05:59:53 +05:00
// www.gtaall.com - https://github.com/FastForwardTeam/FastForward/issues/1348
/www.gtaall.com\/get-manual/ . test ( url ) ? boostTimers ( ) : null ;
2024-03-12 23:22:54 +05:00
// psa.wf (adding here stuff missing from the main script)
/motakhokhara.blogspot.com/ . test ( url ) ? boostTimers ( ) : null ;
2024-02-15 01:34:19 +05:00
} ) ( ) ;
// ----- ----- -----