diff --git a/legacy/src/services/searxng-client.ts b/legacy/src/services/searxng-client.ts index 315fff67..4b5d3b65 100644 --- a/legacy/src/services/searxng-client.ts +++ b/legacy/src/services/searxng-client.ts @@ -3,10 +3,217 @@ import defaultKy, { type KyInstance } from 'ky' import { assert, getEnv, omit, pick, pruneUndefined } from '../utils.js' export namespace searxng { + export type SearchCategory = + | 'general' + | 'images' + | 'videos' + | 'news' + | 'map' + | 'music' + | 'it' + | 'science' + | 'files' + | 'social media' + + export type SearchEngine = + | '9gag' + | 'annas archive' + | 'apk mirror' + | 'apple app store' + | 'ahmia' + | 'anaconda' + | 'arch linux wiki' + | 'artic' + | 'arxiv' + | 'ask' + | 'bandcamp' + | 'wikipedia' + | 'bilibili' + | 'bing' + | 'bing images' + | 'bing news' + | 'bing videos' + | 'bitbucket' + | 'bpb' + | 'btdigg' + | 'ccc-tv' + | 'openverse' + | 'chefkoch' + | 'crossref' + | 'crowdview' + | 'yep' + | 'yep images' + | 'yep news' + | 'curlie' + | 'currency' + | 'bahnhof' + | 'deezer' + | 'destatis' + | 'deviantart' + | 'ddg definitions' + | 'docker hub' + | 'erowid' + | 'wikidata' + | 'duckduckgo' + | 'duckduckgo images' + | 'duckduckgo videos' + | 'duckduckgo news' + | 'duckduckgo weather' + | 'apple maps' + | 'emojipedia' + | 'tineye' + | 'etymonline' + | '1x' + | 'fdroid' + | 'flickr' + | 'free software directory' + | 'frinkiac' + | 'fyyd' + | 'genius' + | 'gentoo' + | 'gitlab' + | 'github' + | 'codeberg' + | 'goodreads' + | 'google' + | 'google images' + | 'google news' + | 'google videos' + | 'google scholar' + | 'google play apps' + | 'google play movies' + | 'material icons' + | 'gpodder' + | 'habrahabr' + | 'hackernews' + | 'hoogle' + | 'imdb' + | 'imgur' + | 'ina' + | 'invidious' + | 'jisho' + | 'kickass' + | 'lemmy communities' + | 'lemmy users' + | 'lemmy posts' + | 'lemmy comments' + | 'library genesis' + | 'z-library' + | 'library of congress' + | 'lingva' + | 'lobste.rs' + | 'mastodon users' + | 'mastodon hashtags' + | 'mdn' + | 'metacpan' + | 'mixcloud' + | 'mozhi' + | 'mwmbl' + | 'npm' + | 'nyaa' + | 'mankier' + | 'odysee' + | 'openairedatasets' + | 'openairepublications' + | 'openstreetmap' + | 'openrepos' + | 'packagist' + | 'pdbe' + | 'photon' + | 'pinterest' + | 'piped' + | 'piped.music' + | 'piratebay' + | 'podcastindex' + | 'presearch' + | 'presearch images' + | 'presearch videos' + | 'presearch news' + | 'pub.dev' + | 'pubmed' + | 'pypi' + | 'qwant' + | 'qwant news' + | 'qwant images' + | 'qwant videos' + | 'radio browser' + | 'reddit' + | 'rottentomatoes' + | 'sepiasearch' + | 'soundcloud' + | 'stackoverflow' + | 'askubuntu' + | 'internetarchivescholar' + | 'superuser' + | 'searchcode code' + | 'semantic scholar' + | 'startpage' + | 'tokyotoshokan' + | 'solidtorrents' + | 'tagesschau' + | 'tmdb' + | 'torch' + | 'unsplash' + | 'yandex music' + | 'yahoo' + | 'yahoo news' + | 'youtube' + | 'dailymotion' + | 'vimeo' + | 'wiby' + | 'alexandria' + | 'wikibooks' + | 'wikinews' + | 'wikiquote' + | 'wikisource' + | 'wikispecies' + | 'wiktionary' + | 'wikiversity' + | 'wikivoyage' + | 'wikicommons.images' + | 'wolframalpha' + | 'dictzone' + | 'mymemory translated' + | '1337x' + | 'duden' + | 'seznam' + | 'mojeek' + | 'moviepilot' + | 'naver' + | 'rubygems' + | 'peertube' + | 'mediathekviewweb' + | 'yacy' + | 'yacy images' + | 'rumble' + | 'livespace' + | 'wordnik' + | 'woxikon.de synonyme' + | 'seekr news' + | 'seekr images' + | 'seekr videos' + | 'sjp.pwn' + | 'stract' + | 'svgrepo' + | 'tootfinder' + | 'wallhaven' + | 'wikimini' + | 'wttr.in' + | 'yummly' + | 'brave' + | 'brave.images' + | 'brave.videos' + | 'brave.news' + | 'lib.rs' + | 'sourcehut' + | 'goo' + | 'bt4g' + | 'pkg.go.dev' + export interface SearchOptions { query: string - categories?: string[] - engines?: string[] + categories?: SearchCategory[] + engines?: SearchEngine[] language?: string pageno?: number }