Cloudflare Worker v4 – KV Master
export default { async fetch(request, env) { const url = new URL(request.url); // ---------- DELETE ALL ---------- if(url.searchParams.get("delete")==="true"){ const pwd = url.searchParams.get("pwd") || ""; if(pwd !== "@123") return new Response("❌ Incorrect password",{status:403}); await env.REDIRECT_KV.put("usedLinks","0"); await env.REDIRECT_KV.put("totalLinks","0"); await env.REDIRECT_KV.put("lastLink",""); return new Response("✅ All links deleted!"); } // ---------- RESET USED ---------- if(url.searchParams.get("reset")==="true"){ await env.REDIRECT_KV.put("usedLinks","0"); return new Response("✅ Used Links reset!"); } // ---------- ADD LINKS ---------- if(url.searchParams.get("add")){ const addNum = parseInt(url.searchParams.get("add")||"0"); let total = parseInt(await env.REDIRECT_KV.get("totalLinks")||"0"); total += addNum; await env.REDIRECT_KV.put("totalLinks", total.toString()); return new Response(`✅ Added ${addNum} links. Total: ${total}`); } // ---------- UPDATE LAST LINK (POST) ---------- if(request.method==="POST"){ try{ const data = await request.json(); if(data.lastLink){ await env.REDIRECT_KV.put("lastLink", data.lastLink); } return new Response("✅ lastLink updated"); }catch(e){return new Response("❌ Invalid POST", {status:400});} } // ---------- STATS / PANEL ---------- if(url.searchParams.get("key")==="aboy"){ const total = parseInt(await env.REDIRECT_KV.get("totalLinks")||"0"); const used = parseInt(await env.REDIRECT_KV.get("usedLinks")||"0"); const remaining = total - used; return new Response(JSON.stringify({ totalLinks: total, usedLinks: used, remainingLinks: remaining, lastLink: await env.REDIRECT_KV.get("lastLink")||"None" }, null, 2), { headers: {"Content-Type":"application/json"} }); } // ---------- ORIGINAL LINK RUN ---------- let used = parseInt(await env.REDIRECT_KV.get("usedLinks")||"0"); used += 1; await env.REDIRECT_KV.put("usedLinks", used.toString()); const link = await env.REDIRECT_KV.get("lastLink") || "https://example.com"; return Response.redirect(link, 302); } };"Onces you Carry your Own water, you'll know the value of every drops"
Search This Blog
Powered by Blogger.
Blog Archive
- May 2026 (13)