From e19dc1d2eee7d41e801c52e23b69f548bc27eb89 Mon Sep 17 00:00:00 2001 From: 00Fjongl <65314359+00Fjongl@users.noreply.github.com> Date: Thu, 25 Jul 2024 03:38:51 -0500 Subject: [PATCH] Slightly debloated blacklist domain testing --- views/uv/sw.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/views/uv/sw.js b/views/uv/sw.js index c9d7daef..332ae56e 100644 --- a/views/uv/sw.js +++ b/views/uv/sw.js @@ -35,14 +35,13 @@ const uv = new UVServiceWorker(); let blacklist; fetch("/assets/json/blacklist.json").then(request => { request.json().then(jsonData => { - blacklist = jsonData.map( - domain => new RegExp( + blacklist = new RegExp(jsonData.map( + domain => encodeURIComponent(domain) .replace(/([()])/g, "\\$1") .replaceAll("*.", "(?:.+\\.)?") .replaceAll(".", "\\.") - ) - ); + ).join("|")); }); }); @@ -52,7 +51,7 @@ self.addEventListener("fetch", (event) => { // The one and only ghetto domain blacklist. if (!new URL(event.request.url).pathname.indexOf("/uv/service/")) { const url = new URL(uv.config.decodeUrl(new URL(event.request.url).pathname.replace(/^\/uv\/service\//, ""))); - if (blacklist.some(domain => domain.test(url.hostname))) + if (blacklist.test(url.hostname)) return new Response(new Blob(), {status: 406}); }