How do I get a redirect script to add a random suffix to select sites?

I have a usercript that redirects to a random site from a list. (Link: How to redirect to one of a given set of sites? )

How do I get a script to add a random suffix to select sites, for example wallbase.cc?

Here is my script:

// ==UserScript== // @name Multipage, MultiSite slideshow of sorts // @match http://*.breaktaker.com/* // @match http://*.imageshack.us/* // @match http://static.tumblr.com/* // @match http://withfriendship.com/images/* // @match http://failjudge.com/* // @match http://wallbase.cc/* // ==/UserScript== var urlsToLoad = [ 'http://www.breaktaker.com/albums/pictures/animals/BigCat.jpg' , 'http://img375.imageshack.us/img375/8105/bigcats34ye4.jpg' , 'http://withfriendship.com/images/g/33769/1.jpg' , 'http://static.tumblr.com/yd0wcto/LXQlx109d/bigcats.jpg' , 'http://failjudge.com/' , 'http://wallbase.cc/wallpaper/ + [random number suffix from 1- 10000000000]' ]; setTimeout (GotoRandomURL, 4000); function GotoRandomURL () { var numUrls = urlsToLoad.length; var urlIdx = urlsToLoad.indexOf (location.href); if (urlIdx >= 0) { urlsToLoad.splice (urlIdx, 1); numUrls--; } urlIdx = Math.floor (Math.random () * numUrls); location.href = urlsToLoad[urlIdx]; } 
+1
javascript redirect userscripts
source share
1 answer

Adding a random suffix means that the script should change the way it checks which site it is on, as well as how it selects the new URL. So, for these sites we need to check for a partial match.

But instead of explaining every piece of it, here is a great code .;) This should be a little self-documenting.

 // ==UserScript== // @name Multipage, MultiSite slideshow of sorts // @match http://*.breaktaker.com/* // @match http://*.imageshack.us/* // @match http://static.tumblr.com/* // @match http://withfriendship.com/images/* // @match http://failjudge.com/* // @match http://wallbase.cc/* // ==/UserScript== var urlsToLoad = [ { url: 'http://www.breaktaker.com/albums/pictures/animals/BigCat.jpg', useSuffix: false }, { url: 'http://img375.imageshack.us/img375/8105/bigcats34ye4.jpg', useSuffix: false }, { url: 'http://withfriendship.com/images/g/33769/1.jpg', useSuffix: false }, { url: 'http://static.tumblr.com/yd0wcto/LXQlx109d/bigcats.jpg', useSuffix: false }, { url: 'http://failjudge.com/', useSuffix: false }, //--- Fur suffix URLs, include everything before the suffix only. { url: 'http://wallbase.cc/wallpaper/', useSuffix: true } ]; /*--- Since many of these sites load large pictures, Chrome normal or its "document end" injection may fire a good deal before the image(s) finish loading. So, insure script fires after load: */ window.addEventListener ( "load", function () { setTimeout (GotoRandomURL, 4000); }, false ); if (document.readyState == "complete") { setTimeout (GotoRandomURL, 4000); } function GotoRandomURL () { var numUrls = urlsToLoad.length; var urlIdx = -1; for (var J = numUrls - 1; J >= 0; --J) { if (urlsToLoad[J].useSuffix) { //--- Check that URL starts with the specified value var prefChk = new RegExp ('^' + urlsToLoad[J].url, 'i'); if (prefChk.test (location.href) ) { urlIdx = J; break; } } else { if (urlsToLoad[J].url == location.href) { urlIdx = J; break; } } } if (urlIdx >= 0) { urlsToLoad.splice (urlIdx, 1); numUrls--; } urlIdx = Math.floor (Math.random () * numUrls); var targURL = urlsToLoad[urlIdx].url; if (urlsToLoad[urlIdx].useSuffix) { //--- Note: wallbase.cc currently has less than 2-million wallpapers. targURL += Math.ceil (Math.random () * 2000000); } console.log ('\n\n***\n', targURL, '\n***\n\n'); location.href = targURL; } 
+1
source share

All Articles