From 4ea7ab5e119c39ba74c999fd46fec8251368e475 Mon Sep 17 00:00:00 2001 From: MotorTruck1221 Date: Mon, 21 Apr 2025 23:26:40 -0600 Subject: [PATCH] Add proxy switcher to the mix --- src/pages/[...settings]/index.astro | 10 ++++++++-- src/pages/index.astro | 2 +- src/utils/proxy.ts | 3 ++- src/utils/settings.ts | 4 +++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/pages/[...settings]/index.astro b/src/pages/[...settings]/index.astro index 79d6071..aaca783 100644 --- a/src/pages/[...settings]/index.astro +++ b/src/pages/[...settings]/index.astro @@ -53,7 +53,6 @@ Object.keys(SearchEngines).forEach((k) => SearchEngineOptions.push( } const transport = async (opts: Options) => { - console.log('t'); const transportEl = document.getElementById("dropdownBox-tSwitcher") as HTMLSelectElement; transportEl.value = opts.storageManager.getVal("transport") || "libcurl"; transportEl.addEventListener("change", async () => { @@ -61,7 +60,13 @@ Object.keys(SearchEngines).forEach((k) => SearchEngineOptions.push( }); } - const proxy = async (opts: Options) => {} + const proxy = async (opts: Options) => { + const proxyEl = document.getElementById("dropdownBox-pSwitcher") as HTMLSelectElement; + proxyEl.value = opts.storageManager.getVal("proxy") || "uv"; + proxyEl.addEventListener("change", async () => { + opts.settings.proxy(proxyEl.value as "uv" | "sj"); + }); + } document.addEventListener("astro:page-load", async () => { try { @@ -69,6 +74,7 @@ Object.keys(SearchEngines).forEach((k) => SearchEngineOptions.push( const sw = SW.getInstance().next().value!; const storageManager = new StoreManager<"radius||settings">("radius||settings"); await transport({settings, sw, storageManager}); + await proxy({settings, sw, storageManager}); } catch (err) { console.log(err) } }); diff --git a/src/pages/index.astro b/src/pages/index.astro index dbfed5f..b6271c9 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -56,7 +56,7 @@ const randomSplash = genSplash(); const settings = await Settings.getInstance(); await sw.setTransport(); iframe.classList.remove("hidden"); - iframe.src = sw.encodeURL(input.value, 'scram'); + iframe.src = sw.encodeURL(input.value); } }); diff --git a/src/utils/proxy.ts b/src/utils/proxy.ts index ca1e5b5..dc63522 100644 --- a/src/utils/proxy.ts +++ b/src/utils/proxy.ts @@ -48,7 +48,8 @@ class SW { return template.replace("%s", encodeURIComponent(input)); } - encodeURL(string: string, proxy: 'uv' | 'sj'): string { + encodeURL(string: string): string { + const proxy = this.#storageManager.getVal("proxy") as 'uv' | 'sj'; const input = this.#search(string, "https://google.com/search?q=%s"); return proxy === 'uv' ? `${__uv$config.prefix}${__uv$config.encodeUrl!(input)}` : this.#scramjetController!.encodeUrl(input) } diff --git a/src/utils/settings.ts b/src/utils/settings.ts index 8dab724..e7c8938 100644 --- a/src/utils/settings.ts +++ b/src/utils/settings.ts @@ -71,7 +71,9 @@ class Settings { : document.documentElement.className = theme || this.#storageManager.getVal('theme'); } - proxy(prox: 'uv' | 'sj') {} + proxy(prox: 'uv' | 'sj') { + this.#storageManager.setVal('proxy', prox); + } async *#init() { yield this.theme(this.#storageManager.getVal('theme') || 'default');