diff options
author | metamuffin <metamuffin@disroot.org> | 2023-07-26 17:29:26 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-07-26 17:29:26 +0200 |
commit | 165bf2df95d42d3ff029ade606e38308e93eacc8 (patch) | |
tree | 453eee1f9bd0671f423e26ee702cf1fefb28dd6f /frontend/query.ts | |
parent | f35043b395adf9ffa06b71000dfba6f560d44cb7 (diff) | |
download | fastbangs-165bf2df95d42d3ff029ade606e38308e93eacc8.tar fastbangs-165bf2df95d42d3ff029ade606e38308e93eacc8.tar.bz2 fastbangs-165bf2df95d42d3ff029ade606e38308e93eacc8.tar.zst |
front page and lots of stuff
Diffstat (limited to 'frontend/query.ts')
-rw-r--r-- | frontend/query.ts | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/frontend/query.ts b/frontend/query.ts index c0cc9ea..f3c7e07 100644 --- a/frontend/query.ts +++ b/frontend/query.ts @@ -1,14 +1,15 @@ import { status } from "./ui.ts" // TODO embed this information into bangs.js -const ENGINE_NAMES: {[key:string]:string} = { +const ENGINE_PINNED: Set<string> = new Set(["ddg", "qw", "qwl", "g"]) +const ENGINE_NAMES: { [key: string]: string } = { "ddg": "DuckDuckGo", "qw": "Qwant", "qwl": "Qwant Lite", "g": "Google", } -interface Bangs { [key: string]: { url: string, name: string } } +interface Bangs { [key: string]: { url: string, name?: string, pinned?: boolean } | undefined } export let bangs: Promise<Bangs>; export function load_bangs() { status("info", "Loading bangs...") @@ -16,9 +17,15 @@ export function load_bangs() { (async () => { const bangs_res = await fetch("/bangs.json") if (!bangs_res.ok) return status("error", "could not download bangs.json") - const k: {[key:string]:string} = await bangs_res.json() + const k: { [key: string]: string } = await bangs_res.json() status("info", "Bangs loaded.") - r(Object.fromEntries(Object.entries(k).map(([key,url]) => [key, { url, name: ENGINE_NAMES[key] ?? key }]))) + r(Object.fromEntries(Object.entries(k).map( + ([key, url]) => [key, { + url, + name: ENGINE_NAMES[key], + pinned: ENGINE_PINNED.has(key) + }] + ))) })() }) } @@ -38,5 +45,5 @@ export async function process_query(default_engine: string, query: string) { } async function search_url(engine: string, query: string) { - return (await bangs)[engine].url.replace("{{{s}}}", encodeURIComponent(query).replaceAll("%20", "+")) + return (await bangs)[engine]!.url.replace("{{{s}}}", encodeURIComponent(query).replaceAll("%20", "+")) } |