import { connect } from 'cloudflare:sockets'; var TOKEN_URL = "X_TOKEN_URL"; var WPAD_URL = "X_WPAD_URL"; var CLI_URL = "X_CLI_URL" var tokenmap = {}; var tokenSyncTime = 0; var syncTokens = async ()=>{ //let res = await fetch(TOKEN_URL, {}).then(res=>{ // return res.json() //}) let res = { "iamissupperman":9820768171317 } tokenSyncTime = new Date().getTime(); Object.assign(tokenmap, res); //console.log(tokenmap); } export default{ async fetch(request, env){ if (Object.keys(tokenmap).length == 0){ await syncTokens(); } else if(new Date().getTime() - 10*1000 > tokenSyncTime) { syncTokens(); } const upgradeHeader=request.headers.get("Upgrade"); if(upgradeHeader!=="websocket"){ var url = request.url.split("?token=")[0]; var token = request.url.split("?token=")[1]; if (!token || !tokenmap[token] || tokenmap[token] < new Date().getTime()) { return new Response("Forbidden", {status: 403}); } try { console.log(url); if(url.length > 9 && url.substring(url.length-9) === "/wpad.dat") { return await fetch(WPAD_URL, {}) } else if(url.length > 7 && url.substring(url.length-7) === "/cli.js") { return await fetch(CLI_URL, {}) } } catch(e) { return new Response("Server error", {status: 500}); } return new Response("