[searx-search] better handling of results and API errors

searx-api-pre
blob42 2 years ago
parent d7eedc75d1
commit 3a9fd229d9

@ -144,8 +144,11 @@ class SearxSearchWrapper(BaseModel):
headers=self.headers, headers=self.headers,
params=params, params=params,
verify=not self.unsecure, verify=not self.unsecure,
).text )
res = SearxResults(raw_result) # test if http result is ok
if not raw_result.ok:
raise ValueError("Searx API returned an error: ", raw_result.text)
res = SearxResults(raw_result.text)
self._result = res self._result = res
return res return res
@ -184,7 +187,7 @@ class SearxSearchWrapper(BaseModel):
# only return the content of the results list # only return the content of the results list
elif len(res.results) > 0: elif len(res.results) > 0:
toret = "\n\n".join( toret = "\n\n".join(
[r.get("content", "no result found") for r in res.results[: self.k]] [r.get("content", "") for r in res.results[: self.k]]
) )
else: else:
toret = "No good search result found" toret = "No good search result found"
@ -220,9 +223,11 @@ class SearxSearchWrapper(BaseModel):
return [{"Result": "No good Search Result was found"}] return [{"Result": "No good Search Result was found"}]
for result in results: for result in results:
metadata_result = { metadata_result = {
"snippet": result["content"], "snippet": result.get("content", ""),
"title": result["title"], "title": result["title"],
"link": result["url"], "link": result["url"],
"engines": result["engines"],
"category": result["category"],
} }
metadata_results.append(metadata_result) metadata_results.append(metadata_result)

Loading…
Cancel
Save