blob: 338e98b808b298c114e157dc2edf419549a6daed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
function getRandomSite(ignore) {
// get random index from sites
var index = Math.floor(Math.random() * sites.length);
// if random site is referrer, retry
return (index === ignore) ? generateRandom(ignore) : sites[index];
}
var validRedirectTypes = ['next', 'previous', 'random']
// parse url params
var params = new URLSearchParams(window.location.search);
var referrerUrl = params.get('referrer')
var type = params.get('type') || 'random' // default to random if no type given
if (!validRedirectTypes.includes(type)) { // default to random is type not valid
type = 'random'
}
if (!sites.includes(referrerUrl)) {
// referrer url is incorrect, select random referrer from sites list,
referrerUrl = sites[Math.floor(Math.random() * sites.length)]
// select random site, and redirect to it
window.location.href = sites[Math.floor(Math.random() * sites.length)]
}
// get index of the referrer url
var referrerIndex = sites.indexOf(referrerUrl);
if (type === 'random') {
var redirect = getRandomSite(referrerIndex)
} else if (type === 'next') {
// get index of next website in list
var nextIndex = referrerIndex + 1
console.log(nextIndex)
// if index is greater than the length of list, loop back to 0 index
if (nextIndex > sites.length - 1) {
nextIndex = 0
}
var redirect = sites[nextIndex]
} else { // redirect to previous
var previousIndex = referrerIndex - 1
if (previousIndex < 0) { // if previous index is less than 0, loop around to last index
previousIndex = sites.length - 1
}
var redirect = sites[previousIndex]
}
window.location.href = redirect
|