
    6j^                         d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
  ej        e          Z G d dee
                   ZdS )	z'Startpage search engine implementation.    N)Mapping)AnyClassVar)BaseSearchEngine)
TextResultc                       e Zd ZU dZdZdZdZdZdZddiZ	e
eeef                  ed	<   d
ZddddZe
eeef                  ed<   defdZ	 ddededededz  dededeeef         fdZdS )	StartpagezStartpage search engine.	startpagetextgooglez#https://www.startpage.com/sp/searchPOSTRefererhttps://www.startpage.com/headers_updatez&//div[contains(@class, 'result')][./a]z.//h2//text()z	./a/@hrefz.//p//text())titlehrefbodyelements_xpathreturnc                     | j                             dd          j        }|                     |          }|                    d          }|r|d         nd| _        | j        S )zGet sc param.GETr   z.//form[@id="search"]//input[@name="sc"]/@valuer    )http_clientrequestr   extract_treexpath_sc)self	resp_texttreesc_elementss       X/root/.hermes/hermes-agent/venv/lib64/python3.11/site-packages/ddgs/engines/startpage.pyget_sczStartpage.get_sc   s^    $,,U4PQQV	  ++jj!QRR%08;q>>bx       queryregion
safesearch	timelimitNpagekwargsc                 D   |                                                     d          \  }}dddd}	|dd|                                 ddd	d
d
| d|                                 |	|                                          dd}
|dk    rt	          |          |
d<   |r||
d<   |
S )z1Build a payload for the Startpage search request.-heavymoderatenone)onr/   offwebdeviceenglish10_organic)r&   cattscluilanguageabpabdabeqsrqadfsegmentr%   r*   	with_date)lowersplitr#   upperstr)r   r&   r'   r(   r)   r*   r+   countrylangsafesearch_basepayloads              r"   build_payloadzStartpage.build_payload'   s     ,,S11!(jPP++--!..W]]__..#J$4$4$6$67 #
 #
 !88!$iiGFO 	-#,GK r$   )r%   )__name__
__module____qualname____doc__namecategoryprovider
search_urlsearch_methodr   r   dictrI   __annotations__items_xpathr   r   r#   intr   rN    r$   r"   r	   r	      s        ""DHH6JM09;W/XNHT#s(^,XXX:K 3 3NHWS#X./           	
 :   
c3h     r$   r	   )rR   loggingcollections.abcr   typingr   r   	ddgs.baser   ddgs.resultsr   	getLoggerrO   loggerr	   r\   r$   r"   <module>rd      s    - -  # # # # # #                 & & & & & & # # # # # #		8	$	$9 9 9 9 9 , 9 9 9 9 9r$   