From ab6f588fb19c0ed60e4622b5ba30072715ed20f0 Mon Sep 17 00:00:00 2001 From: MotorTruck1221 Date: Fri, 2 May 2025 23:26:36 -0600 Subject: [PATCH] Search Engine switching --- src/pages/[...settings]/index.astro | 15 +++++++++++++++ src/utils/proxy.ts | 2 +- src/utils/settings.ts | 4 ++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/pages/[...settings]/index.astro b/src/pages/[...settings]/index.astro index aaca783..b93d0c7 100644 --- a/src/pages/[...settings]/index.astro +++ b/src/pages/[...settings]/index.astro @@ -46,6 +46,12 @@ Object.keys(SearchEngines).forEach((k) => SearchEngineOptions.push( import { Settings } from "@utils/settings.ts"; import { SW } from "@utils/proxy.ts"; import { StoreManager } from "@utils/storage"; + import { SearchEngines, type DropdownOptions } from "@utils/types"; + const SearchEngineOptions: DropdownOptions[] = []; + Object.keys(SearchEngines).forEach((k) => SearchEngineOptions.push( + { name: k, value: SearchEngines[k] } + )); + type Options = { settings: Settings, sw: SW, @@ -68,6 +74,14 @@ Object.keys(SearchEngines).forEach((k) => SearchEngineOptions.push( }); } + const searchEngine = async (opts: Options) => { + const seEl = document.getElementById("dropdownBox-sSwitcher") as HTMLSelectElement; + seEl.value = opts.storageManager.getVal("searchEngine") || "ddg"; + seEl.addEventListener("change", async () => { + opts.settings.searchEngine(seEl.value); + }); + } + document.addEventListener("astro:page-load", async () => { try { const settings = await Settings.getInstance(); @@ -75,6 +89,7 @@ Object.keys(SearchEngines).forEach((k) => SearchEngineOptions.push( const storageManager = new StoreManager<"radius||settings">("radius||settings"); await transport({settings, sw, storageManager}); await proxy({settings, sw, storageManager}); + await searchEngine({settings, sw, storageManager}); } catch (err) { console.log(err) } }); diff --git a/src/utils/proxy.ts b/src/utils/proxy.ts index dc63522..a1d5bf7 100644 --- a/src/utils/proxy.ts +++ b/src/utils/proxy.ts @@ -50,7 +50,7 @@ class SW { encodeURL(string: string): string { const proxy = this.#storageManager.getVal("proxy") as 'uv' | 'sj'; - const input = this.#search(string, "https://google.com/search?q=%s"); + const input = this.#search(string, this.#storageManager.getVal('searchEngine')); 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 e7c8938..0bff8d8 100644 --- a/src/utils/settings.ts +++ b/src/utils/settings.ts @@ -74,6 +74,10 @@ class Settings { proxy(prox: 'uv' | 'sj') { this.#storageManager.setVal('proxy', prox); } + + searchEngine(engine: string) { + this.#storageManager.setVal('searchEngine', engine); + } async *#init() { yield this.theme(this.#storageManager.getVal('theme') || 'default');