summaryrefslogtreecommitdiff
path: root/static/redirect.js
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