
    ǁii                        d dl mZ d dlZd dlmZ d dlmZ d dlmZ ddl	m
Z
 	 dZd dlZ ej                  d
      ZddZddZddZddZddZddZy# e$ r	 d	Zd dlZY 8w xY w)    )annotationsN)unescape)Any)unquote   )DuckDuckGoSearchExceptionTFz<.*?>c                   	 t         r3t        j                  | t        j                        j	                         S t        j                  | dd      S # t        $ r)}t        t        |      j                   d|       |d }~ww xY w)N)optionF   )ensure_asciiindent: )

HAS_ORJSONorjsondumpsOPT_INDENT_2decodejson	Exceptionr   type__name__objexs     a/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/duckduckgo_search/utils.py
json_dumpsr      s    N  LLV%8%89@@B	
 CeA>	

  N'48+<+<*=Rt(DE2MNs   8A A 	B$B  Bc                    	 t         rt        j                  |       S t        j                  |       S # t        $ r)}t        t        |      j                   d|       |d }~ww xY w)Nr   )r   r   loadsr   r   r   r   r   r   s     r   
json_loadsr      s[    N$.v||C CDJJsOC N'48+<+<*=Rt(DE2MNs   2 2 	A$$AA$c                    dD ]A  \  }}}	 | j                  |      |z   }| j                  ||      }| || j                         c S  t        d|d      # t        $ r Y ^w xY w)zExtract vqd from html bytes.))s   vqd="      ")s   vqd=      &)s   vqd='r!      'z_extract_vqd() keywords=z Could not extract vqd.)indexr   
ValueErrorr   )
html_byteskeywordsc1c1_lenc2startends          r   _extract_vqdr/   &   s     
FB
	$$R(61E""2u-CeC(//11
 $&?h[@W$X
YY  		s   8A	A"!A"c                H    | rt        t        j                  d|             S dS )z)Strip HTML tags from the raw_html string. )r   REGEX_STRIP_TAGSsub)raw_htmls    r   
_normalizer5   6   s"    ;C8$((X67KK    c                @    | rt        |       j                  dd      S dS )z(Unquote URL and replace spaces with '+'. +r1   )r   replace)urls    r   _normalize_urlr<   ;   s     -073<S)8b8r6   c                    | dk(  rdS | S )z.Expand "tb" to a full proxy URL if applicable.tbzsocks5://127.0.0.1:9150 )proxys    r   _expand_proxy_tb_aliasrA   @   s    (-$@5@r6   )r   r   returnstr)r   zstr | bytesrB   r   )r(   bytesr)   rC   rB   rC   )r4   rC   rB   rC   )r;   rC   rB   rC   )r@   
str | NonerB   rE   )
__future__r   rehtmlr   typingr   urllib.parser   
exceptionsr   r   r   ImportErrorr   compiler2   r   r   r/   r5   r<   rA   r?   r6   r   <module>rN      st    " 	     1J
 2::g& NNZ L
9
Ag  Js   A A#"A#