Ë
    cQêj-  ã                   óX   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	  G d„ dee	   «      Z
y)	z(Duckduckgo search engine implementation.é    )ÚMapping)ÚAnyÚClassVar)ÚBaseSearchEngine)Ú
TextResultc                   ó¤   — e Zd ZU dZdZdZdZdZdZdZ	dd	d
dœZ
eeeef      ed<   	 ddededededz  dededeeef   fd„Zdee   dee   fd„Zy)Ú
DuckduckgozDuckduckgo search engine.Ú
duckduckgoÚtextÚbingz!https://html.duckduckgo.com/html/ÚPOSTz//div[contains(@class, 'body')]z.//h2//text()z	./a/@hrefz./a//text())ÚtitleÚhrefÚbodyÚelements_xpathÚqueryÚregionÚ
safesearchÚ	timelimitNÚpageÚkwargsÚreturnc                 óH   — |d|dœ}|dkD  rd|dz
  dz  z   › |d<   |r||d<   |S )	z'Build a payload for the search request.Ú )ÚqÚbÚlé   é
   é   é   ÚsÚdf© )Úselfr   r   r   r   r   r   Úpayloads           ú\/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/ddgs/engines/duckduckgo.pyÚbuild_payloadzDuckduckgo.build_payload   sA   € ð  B¨VÑ4ˆØ�!Š8Ø  D¨1¡H°¡?Ñ2Ð3ˆG�C‰LÙØ%ˆG�D‰MØˆó    Úresultsc                 ód   — |D �cg c]   }|j                   j                  d«      rŒ|‘Œ" c}S c c}w )zPost-process search results.zhttps://duckduckgo.com/y.js?)r   Ú
startswith)r%   r*   Úrs      r'   Úpost_extract_resultszDuckduckgo.post_extract_results(   s(   € à"Ö\�a¨!¯&©&×*;Ñ*;Ð<ZÕ*[’Ò\Ð\ùÒ\s   … -¦-)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚcategoryÚproviderÚ
search_urlÚsearch_methodÚitems_xpathr   r   r   ÚstrÚ__annotations__ÚintÚdictr   r(   Úlistr   r.   r$   r)   r'   r	   r	   
   s¾   … Ù#à€DØ€HØ€Hà4€JØ€Mà3€KØ<KÐU`ÐjwÑ2x€N�H˜W S¨# XÑ.Ñ/Óxð ñàðð ðð ð	ð
 ˜‘:ðð ðð ðð 
ˆc�3ˆh‰óð"]¨D°Ñ,<ð ]ÀÀjÑAQô ]r)   r	   N)r2   Úcollections.abcr   Útypingr   r   Ú	ddgs.baser   Úddgs.resultsr   r	   r$   r)   r'   ú<module>rB      s(   ðÙ .å #ß  å &Ý #ô ]Ð! *Ñ-õ  ]r)   