aboutsummaryrefslogtreecommitdiff
path: root/frontend/query.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-07-26 17:29:26 +0200
committermetamuffin <metamuffin@disroot.org>2023-07-26 17:29:26 +0200
commit165bf2df95d42d3ff029ade606e38308e93eacc8 (patch)
tree453eee1f9bd0671f423e26ee702cf1fefb28dd6f /frontend/query.ts
parentf35043b395adf9ffa06b71000dfba6f560d44cb7 (diff)
downloadfastbangs-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.ts17
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", "+"))
}