diff --git a/_worker.js b/_worker.js index 2365b7a..c4ba2e0 100644 --- a/_worker.js +++ b/_worker.js @@ -68,6 +68,12 @@ export default { // const url = new URL(request.url); switch (url.pathname.toLowerCase()) { case '/': + const envKey = env.URL302 ? 'URL302' : (env.URL ? 'URL' : null); + if (envKey) { + const URLs = await ADD(env[envKey]); + const URL = URLs[Math.floor(Math.random() * URLs.length)]; + return envKey === 'URL302' ? Response.redirect(URL, 302) : fetch(new Request(URL, request)); + } return new Response(JSON.stringify(request.cf, null, 4), { status: 200 }); case `/${userID}`: { const vlessConfig = await getVLESSConfig(userID, request.headers.get('Host'), sub, UA, RproxyIP, url); @@ -985,15 +991,18 @@ https://github.com/cmliu/edgetunnel } let url = `https://${sub}/sub?host=${fakeHostName}&uuid=${fakeUserID}&edgetunnel=cmliu&proxyip=${RproxyIP}`; - let isBase64 = false; - if ((userAgent.includes('clash') && !userAgent.includes('nekobox')) || ( _url.searchParams.has('clash') && !userAgent.includes('subconverter'))) { - url = `https://${subconverter}/sub?target=clash&url=${encodeURIComponent(url)}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=true&fdn=false&sort=false&new_name=true`; - } else if (userAgent.includes('sing-box') || userAgent.includes('singbox') || (( _url.searchParams.has('singbox') || _url.searchParams.has('sb')) && !userAgent.includes('subconverter'))) { - url = `https://${subconverter}/sub?target=singbox&url=${encodeURIComponent(url)}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=true&fdn=false&sort=false&new_name=true`; - } else { - isBase64 = true; + let isBase64 = true; + + if (!userAgent.includes(('CF-Workers-SUB').toLowerCase())){ + if ((userAgent.includes('clash') && !userAgent.includes('nekobox')) || ( _url.searchParams.has('clash') && !userAgent.includes('subconverter'))) { + url = `https://${subconverter}/sub?target=clash&url=${encodeURIComponent(url)}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=true&fdn=false&sort=false&new_name=true`; + isBase64 = false; + } else if (userAgent.includes('sing-box') || userAgent.includes('singbox') || (( _url.searchParams.has('singbox') || _url.searchParams.has('sb')) && !userAgent.includes('subconverter'))) { + url = `https://${subconverter}/sub?target=singbox&url=${encodeURIComponent(url)}&insert=false&config=${encodeURIComponent(subconfig)}&emoji=true&list=false&tfo=false&scv=true&fdn=false&sort=false&new_name=true`; + isBase64 = false; + } } - + try { const response = await fetch(url ,{ headers: {