const filterList = [ "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.amazon.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.apple.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.huawei.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.winoffice.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.samsung.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.tiktok.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.tiktok.extended.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.lgwebos.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.vivo.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.oppo-realme.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/native.xiaomi.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/fake.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/popupads.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/tif.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/tif-ips.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/dyndns.txt", "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/hoster.txt" ] Bun.serve({ async fetch(request, server) { let rules: string[] = []; for (const filter of filterList) { const listReq = await fetch(filter); let list = await listReq.text(); list = list.replace("[Adblock Plus]", '').trim(); list = list.replace(/^!.*$/gm, '').trim(); const listArray = list.split('\n') rules = rules.concat(listArray) } rules = Array.from(new Set(rules)); const rulesText = rules.join('\n'); return new Response(rulesText, { headers: { "content-type": "text/plain; charset=utf-8", "Cache-Control": "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0", "Pragma": "no-cache", "Expires": "0", "Surrogate-Control": "no-store" }, }) } })