diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7c21830 --- /dev/null +++ b/.env.example @@ -0,0 +1,20 @@ +# All environment variables must be prefixed with VITE_ to be seen by client. + +# Self-hosted Services URLs. +VITE_BANG_URL="https://bang." +VITE_GITEA_URL="https://git." +VITE_SEARXNG_URL="https://search." +VITE_OPENWEBUI_URL="https://chat." + +# Set default bang here. For example "g" would be Google. +# Google is the default if you don't set this. +# 's' is for your searxng instance, replacing startpage +VITE_DEFAULT_BANG="s" + +# SPECIFIC MODELS FOR OPENWEBUI +# Local +VITE_LLAMA_MODEL="llama3.1" # !llama +VITE_DEEPSEEK_MODEL="deepseek-r1:8b" # !r1 +# Remote +VITE_OPENAI_MODEL="gpt-4o-mini" # !openai +VITE_CLAUDE_MODEL="anthropic/claude-3.5-sonnet" # !claude diff --git a/.gitignore b/.gitignore index a547bf3..6dbfa00 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,8 @@ dist-ssr *.njsproj *.sln *.sw? + +# ENV +.env +.env* +!.env.example diff --git a/src/bang.ts b/src/bang.ts index 020e971..5bb0e03 100644 --- a/src/bang.ts +++ b/src/bang.ts @@ -1,113 +1,139 @@ // This file was (mostly) ripped from https://duckduckgo.com/bang.js +const SEARXNG_URL = import.meta.env.VITE_SEARXNG_URL as string; +const GITEA_URL = import.meta.env.VITE_GITEA_URL as string; +const OPENWEBUI_URL = import.meta.env.VITE_OPENWEBUI_URL as string; +const LLAMA_MODEL = import.meta.env.VITE_LLAMA_MODEL.replace(":", "%3A") as string; +const DEEPSEEK_MODEL = import.meta.env.VITE_DEEPSEEK_MODEL.replace(":", "%3A") as string; +const OPENAI_MODEL = import.meta.env.VITE_OPENAI_MODEL as string; +const CLAUDE_MODEL = import.meta.env.VITE_CLAUDE_MODEL.replace("/", "%2F") as string; + export const bangs = [ { c: "Online Services", - d: "search.gibbyb.com", + d: SEARXNG_URL, r: 0, - s: "GibbyB", + s: "Searxng", sc: "Search", - t: "sg", - u: "https://search.gibbyb.com/?q={{{s}}}", + t: "s", + u: `${SEARXNG_URL}/?q={{{s}}}`, }, { c: "Tech", - d: "git.gibbyb.com", + d: GITEA_URL, r: 0, s: "Gitea", sc: "Cryptocurrency", t: "tea", - u: "https://git.gibbyb.com/?repo-search-query={{{s}}}", + u: `${GITEA_URL}/?repo-search-query={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", + s: "OpenWebUI", sc: "AI", t: "ai", - u: "https://chat.gibbyb.com/?q={{{s}}}", + u: `${OPENWEBUI_URL}/?q={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", + s: "OpenWebUI", sc: "AI", - t: "claude", - u: "https://chat.gibbyb.com/?models=anthropic%2Fclaude-3.5-sonnet&q={{{s}}}", + t: "c", + u: `${OPENWEBUI_URL}/?q={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", + s: "OpenWebUI", sc: "AI", t: "llama", - u: "https://chat.gibbyb.com/?models=llama3.1&q={{{s}}}", + u: `${OPENWEBUI_URL}/?models=${LLAMA_MODEL}&q={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", - sc: "AI", - t: "r17b", - u: "https://chat.gibbyb.com/?models=deepseek-r1%3A7b&q={{{s}}}", - }, - { - c: "AI", - d: "chat.gibbyb.com", - r: 0, - s: "GibbyB", + s: "OpenWebUI", sc: "AI", t: "r1", - u: "https://chat.gibbyb.com/?models=deepseek-r1%3A8b&q={{{s}}}", + u: `${OPENWEBUI_URL}/?models=${DEEPSEEK_MODEL}&q={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", + s: "OpenWebUI", sc: "AI", - t: "r132b", - u: "https://chat.gibbyb.com/?models=deepseek-r1%3A32b&q={{{s}}}", + t: "r1-7b", + u: `${OPENWEBUI_URL}/?models=deepseek-r1%3A7b&q={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", + s: "OpenWebUI", + sc: "AI", + t: "r1-32b", + u: `${OPENWEBUI_URL}/?models=deepseek-r1%3A32b&q={{{s}}}`, + }, + { + c: "AI", + d: OPENWEBUI_URL, + r: 0, + s: "OpenWebUI", + sc: "AI", + t: "claude", + u: `${OPENWEBUI_URL}/?models=${CLAUDE_MODEL}&q={{{s}}}`, + }, + { + c: "AI", + d: OPENWEBUI_URL, + r: 0, + s: "OpenWebUI", + sc: "AI", + t: "openai", + u: `${OPENWEBUI_URL}/?models=${OPENAI_MODEL}&q={{{s}}}`, + }, + { + c: "AI", + d: OPENWEBUI_URL, + r: 0, + s: "OpenWebUI", sc: "AI", t: "o3-mini", - u: "https://chat.gibbyb.com/?models=o3-mini&q={{{s}}}", + u: `${OPENWEBUI_URL}/?models=o3-mini&q={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", + s: "OpenWebUI", sc: "AI", t: "o1", - u: "https://chat.gibbyb.com/?models=o1&q={{{s}}}", + u: `${OPENWEBUI_URL}/?models=o1&q={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", + s: "OpenWebUI", sc: "AI", t: "4o-mini", - u: "https://chat.gibbyb.com/?models=gpt-4o-mini&q={{{s}}}", + u: `${OPENWEBUI_URL}/?models=gpt-4o-mini&q={{{s}}}`, }, { c: "AI", - d: "chat.gibbyb.com", + d: OPENWEBUI_URL, r: 0, - s: "GibbyB", + s: "OpenWebUI", sc: "AI", t: "4o", - u: "https://chat.gibbyb.com/?models=gpt-4o&q={{{s}}}", + u: `${OPENWEBUI_URL}/?models=gpt-4o&q={{{s}}}`, }, { c: "AI", @@ -98415,7 +98441,7 @@ export const bangs = [ r: 12469, s: "startpage.com", sc: "Search", - t: "s", + t: "startpage", u: "http://startpage.com/do/metasearch.pl?query={{{s}}}", }, { diff --git a/src/main.ts b/src/main.ts index de2b4ca..5a4a700 100644 --- a/src/main.ts +++ b/src/main.ts @@ -18,7 +18,7 @@ function noSearchDefaultPageRender() {