feat: Add SearXNG search provider and settings

This commit is contained in:
n4ze3m
2024-12-01 00:23:17 +05:30
parent 138e41e122
commit c8c71f69cc
21 changed files with 292 additions and 10 deletions

View File

@@ -62,20 +62,45 @@ export const setTotalSearchResults = async (totalSearchResults: number) => {
await storage.set("totalSearchResults", totalSearchResults.toString())
}
export const getSearxngURL = async () => {
const searxngURL = await storage.get("searxngURL")
return searxngURL || ""
}
export const isSearxngJSONMode = async () => {
const searxngJSONMode = await storage.get<boolean>("searxngJSONMode")
return searxngJSONMode ?? false
}
export const setSearxngJSONMode = async (searxngJSONMode: boolean) => {
await storage.set("searxngJSONMode", searxngJSONMode)
}
export const setSearxngURL = async (searxngURL: string) => {
await storage.set("searxngURL", searxngURL)
}
export const getSearchSettings = async () => {
const [isSimpleInternetSearch, searchProvider, totalSearchResult, visitSpecificWebsite] =
const [isSimpleInternetSearch, searchProvider, totalSearchResult, visitSpecificWebsite,
searxngURL,
searxngJSONMode
] =
await Promise.all([
getIsSimpleInternetSearch(),
getSearchProvider(),
totalSearchResults(),
getIsVisitSpecificWebsite()
getIsVisitSpecificWebsite(),
getSearxngURL(),
isSearxngJSONMode()
])
return {
isSimpleInternetSearch,
searchProvider,
totalSearchResults: totalSearchResult,
visitSpecificWebsite
visitSpecificWebsite,
searxngURL,
searxngJSONMode
}
}
@@ -83,17 +108,23 @@ export const setSearchSettings = async ({
isSimpleInternetSearch,
searchProvider,
totalSearchResults,
visitSpecificWebsite
visitSpecificWebsite,
searxngJSONMode,
searxngURL
}: {
isSimpleInternetSearch: boolean
searchProvider: string
totalSearchResults: number
visitSpecificWebsite: boolean
searxngURL: string
searxngJSONMode: boolean
}) => {
await Promise.all([
setIsSimpleInternetSearch(isSimpleInternetSearch),
setSearchProvider(searchProvider),
setTotalSearchResults(totalSearchResults),
setIsVisitSpecificWebsite(visitSpecificWebsite)
setIsVisitSpecificWebsite(visitSpecificWebsite),
setSearxngJSONMode(searxngJSONMode),
setSearxngURL(searxngURL)
])
}