
    ^i                         S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  \" 5       r\" S5      r " S	 S
\
\   5      rg)z(Duckduckgo search engine implementation.    )Mapping)AnyClassVarTypeVar)	UserAgent)BaseSearchEngine)HttpClient2)
TextResultTc                       \ rS rSr% SrSrSrSrSrSr	Sr
S	S
SS.r\\\\4      \S'   S\R"                  0r\\\\4      \S'   S SS.S\S-  S\S-  S\SS4S jjjr S!S\S\S\S\S-  S\S\S\\\4   4S jjrSrg)"
Duckduckgo   z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_xpathz
User-AgentheadersNT)verifyproxytimeoutr   returnc                F    [        U R                  XUS9U l        / U l        g)z+Temporary, delete when HttpClient is fixed.)r   r   r   r   N)r	   r   http_clientresults)selfr   r   r   s       Q/home/james-whalen/.local/lib/python3.13/site-packages/ddgs/engines/duckduckgo.py__init__Duckduckgo.__init__    s    &t||5bhi "    queryregion
safesearch	timelimitpagekwargsc                 R    USUS.nUS:  a  SUS-
  S-  -    US'   U(       a  XGS'   U$ )	z'Build a payload for the search request. )qbl   
         sdf )r   r$   r%   r&   r'   r(   r)   payloads           r    build_payloadDuckduckgo.build_payload%   s?     BV4!8 D1H?23GCL%DMr#   )r   r   )NN)r/   )__name__
__module____qualname____firstlineno____doc__namecategoryprovider
search_urlsearch_methoditems_xpathr   r   r   str__annotations__uarandomr   dictintboolr!   r   r7   __static_attributes__r5   r#   r    r   r      s    #DHH4JM3K<KU`jw2xNHWS#X./x)5ryy(AGXd38n%A#_c #cDj ##* #X\ #hl #   	
 :   
c3h r#   r   N)r=   collections.abcr   typingr   r   r   fake_useragentr   	ddgs.baser   ddgs.http_client2r	   ddgs.resultsr
   rF   r   r   r5   r#   r    <module>rR      s?    . # ) ) $ & ) #[CL#!*- #r#   