/
cloudflare-worker.js
38 lines (37 loc) · 1.33 KB
/
cloudflare-worker.js
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
addEventListener('fetch', event => {
event.respondWith(handle(event.request))
})
async function handle(request)
{
try {
let url = new URL(request.url)
if( url.hostname == 'sharpay.io' )
{
const langs = {
'RU':'ru', 'UA':'ru', 'BY':'ru', 'KZ':'ru',
'CN':'zh', 'TW':'zh', 'SG':'zh', 'HK':'zh', 'MO':'zh',
'KR':'ko', 'KP':'ko',
'JP':'jp',
'PH':'ph',
'NL':'nl', 'BE':'nl', 'SR':'nl', 'AW':'nl', 'CW':'nl', 'SX':'nl',
'IT':'it',
'ES':'es', 'PH':'es', 'GQ':'es', 'AR':'es', 'BO':'es', 'CL':'es', 'CO':'es', 'CR':'es', 'CU':'es', 'DO':'es', 'EC':'es', 'GT':'es', 'HN':'es', 'MX':'es', 'NI':'es', 'PA':'es', 'PY':'es', 'PE':'es', 'PR':'es', 'SV':'es', 'UY':'es', 'VE':'es',
'PT':'pt', 'AO':'pt', 'BR':'pt', 'TL':'pt', 'GW':'pt', 'CV':'pt', 'MZ':'pt', 'ST':'pt',
'IN':'hi', 'PK':'hi', 'FJ':'hi'
}
let cookies = request.headers.get('Cookie') || null
let useragent = request.headers.get('User-Agent') || null
if ( ! ( ( useragent && useragent.includes('bot') ) || ( cookies && cookies.includes("language=true") ) ) && url.pathname == "/" )
{
let country = request.headers.get("CF-IpCountry")
if( langs[ country ] !== undefined )
{
url.pathname = "/" + langs[ country ] + "/"
return Response.redirect(url, 302)
}
}
}
}
catch ( e ) {}
return fetch(request)
}