+
    kHàj�  ã                  óŒ   € R t ^ RIHt ^ RIt^ RIHtHt ^ RIHtH	t	H
t
HtHtHtHt ]P                  ! ]4      t ! R R]4      tR# )u¿   SearXNG search via a user-hosted instance (``/search?format=json``).

Search-only â€” SearXNG aggregates upstream engines but does not fetch URLs.
Env: ``SEARXNG_URL=http://localhost:8080``.
)ÚannotationsN)ÚAnyÚDict)ÚBaseWebSearchProviderÚhttp_get_jsonÚprovider_envÚsearch_failÚ	search_okÚsetup_schemaÚtitled_rowsc                  óB   € ] tR t^tRtRtRtRtRR R lltR R lt	R	t
R
# )ÚSearXNGWebSearchProviderz*Search via a user-hosted SearXNG instance.ÚsearxngÚSearXNGÚSEARXNG_URLc               ó$   € V ^8„  d   QhRRRRRR/# )é   ÚqueryÚstrÚlimitÚintÚreturnúdict[str, Any]© )Úformats   "ÚA/home/ubuntu/.hermes/hermes-agent/plugins/web/searxng/provider.pyÚ__annotate__Ú%SearXNGWebSearchProvider.__annotate__   s!   € ÷ &ñ &˜Cð &¨ð &°Nñ &ó    c           
     	ó€  € \        R 4      P                  R4      pV'       g   \        R4      # \        RV R2RVRRR^/R	R
/^\        RV 2R7      w  rEVe   V# VP                  R. 4      p\        VR RR7      RV p\        VR4      p\        P                  RV\        V4      \        V4      V4       \        V4      # )r   Ú/zSEARXNG_URL is not setr   z/searchÚqr   ÚjsonÚpagenoÚAcceptzapplication/jsonzSearXNG at )ÚparamsÚheadersÚtimeoutÚloggerÚreach_targetNÚresultsc                ó8   € \        V P                  R ^ 4      4      # )Úscore)ÚfloatÚget)Úrs   &r   Ú<lambda>Ú1SearXNGWebSearchProvider.search.<locals>.<lambda>$   s   € ¼5ÀÇÁÀwÐPQÓARÔ;Sr   T)ÚkeyÚreverseÚcontentz7SearXNG search '%s': %d results (from %d raw, limit %d))r   Úrstripr   r   r(   r.   Úsortedr   ÚinfoÚlenr	   )	Úselfr   r   Úbase_urlÚdataÚfailureÚraw_resultsÚsorted_resultsÚweb_resultss	   &&&      r   ÚsearchÚSearXNGWebSearchProvider.search   sÜ   € Ü Ó.×5Ñ5°cÓ:ˆßÜÐ7Ó8Ð8Ü%Ø˜(˜ 7Ð+°S¸%ÀÈ6ÐS[Ð]^Ð4_ØÐ1Ð2¸BÄvÐ^iÐjrÐisÐ\tô
‰ˆð ÒØˆNØ—h‘h˜y¨"Ó-ˆä Ñ1SÐ]aÔbÐciÐdiÐjˆÜ! .°)Ó<ˆÜ�‰ÐMÈuÔVYÐZeÓVfÔhkÐlwÓhxÐzô  	AÜ˜Ó%Ð%r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   )   s   € ÷ 
ñ 
 .ñ 
r   c                	ó"   € \        R RRRRR4      # )r   u   free Â· self-hostedzHFree, privacy-respecting metasearch. Point SEARXNG_URL at your instance.r   z1SearXNG instance URL (e.g. http://localhost:8080)zhttps://searx.space/)r
   )r9   s   &r   Úget_setup_schemaÚ)SearXNGWebSearchProvider.get_setup_schema)   s!   € ÜØÐ,Ð.xØÐNÐPfó
ð 	
r   r   N)é   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚNAMEÚDISPLAY_NAMEÚKEY_ENVr@   rD   Ú__static_attributes__r   r   r   r   r      s#   † Ù4à€DØ€LØ€G÷&÷"
ñ 
r   r   )rK   Ú
__future__r   ÚloggingÚtypingr   r   Úplugins.web._commonr   r   r   r   r	   r
   r   Ú	getLoggerrG   r(   r   r   r   r   Ú<module>rU      sD   ðñõ #ã ß ÷ F÷  Fñ  Fà	×	Ò	˜8Ó	$€ô
Ð4ö 
r   