KV SCRIPT with Link Remaining
export default { async fetch(request, env) { // Check KV binding if (!env.REDIRECT_KV) { return new Response("KV binding REDIRECT_KV not found", { status: 500, headers: { "content-type": "text/plain; charset=UTF-8", "cache-control": "no-store" } }); } // List of links const links = [ "http://p.pcdelv.com/go/499995/753757/aHR0cHMlM0EvL3d3dy5nZXRmaWxlcy5vbmxpbmUvMjAyNi8wNC9lcHNvbi1sMTIwLXJlc2V0dGVyLmh0bWwlM0ZtJTNEMQ==?cb=3550559454177666.5", "http://p.pcdelv.com/go/499995/753757/aHR0cHMlM0EvL3d3dy5nZXRmaWxlcy5vbmxpbmUvMjAyNi8wNC9jYWxsLW9mLWR1dHktbW9kZXJuLXdhcmZhcmUtMy5odG1sJTNGbSUzRDE=?cb=7801214899022078", "http://p.pcdelv.com/go/499995/753757/aHR0cHMlM0EvL3d3dy5nZXRmaWxlcy5vbmxpbmUvMjAyNi8wNC9jYWxsLW9mLWR1dHktYmxhY2stb3BzLTcuaHRtbCUzRm0lM0Qx?cb=8014652092373101" ]; // Parse query parameter const url = new URL(request.url); const queryKey = url.searchParams.get("key"); const usedKey = "used_links"; let used = []; // Get used links from KV try { const saved = await env.REDIRECT_KV.get(usedKey); used = saved ? JSON.parse(saved) : []; } catch (e) { used = []; } if (!Array.isArray(used)) used = []; used = used.filter(index => Number.isInteger(index) && index >= 0 && index < links.length); const totalLinks = links.length; const usedLinks = used.length; const remainingLinks = totalLinks - usedLinks; // --- Show stats if ?key=aboy --- if (queryKey === "aboy") { const html = `Total Links:
${totalLinks}
Used Links:
${usedLinks}
Remaining Links:
${remainingLinks}
"Onces you Carry your Own water, you'll know the value of every drops"
Search This Blog
Powered by Blogger.
Blog Archive
- May 2026 (10)