+
    0j
                         R t ^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt R R	 lt ! R
 R]],          4      tR# )z"Bing search engine implementation.N)Mapping)time)AnyClassVar)parse_qsurlparse)BaseSearchEngine)
TextResultc                >    V ^8  d   QhR\         R\         R,          /# )   raw_urlreturnN)str)formats   "f/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/ddgs/engines/bing.py__annotate__r      s      S S4Z     c                J   \        V 4      p\        VP                  4      P                  R. 4      pV'       g   R# V^ ,          p\	        V4      ^8:  d   R# VR,          pR\	        V4      ) ^,          ,          p\
        P                  ! WE,           4      pVP                  4       # )z<Decode the Bing-wrapped raw_url to extract the original url.uN:r   NN=)r   r   querygetlenbase64urlsafe_b64decodedecode)r   parsedu_valsr   b64_partpaddingdecodeds   &      r   unwrap_bing_urlr!      s    gFfll#''R0Fq	A
1v{ uHc(m^a'(G&&x'9:G>>r   c                      a  ] tR t^t o RtRtRtRtRtRt	Rt
RtRR	R
RRR/tRV 3R lR lltV 3R lR ltV 3R ltRtV tR# )BingzBing search engine.Tbingtextzhttps://www.bing.com/searchGETz //li[contains(@class, 'b_algo')]titlez.//h2/a//text()hrefz.//h2/a/@hrefbodyz.//p//text()c                h   < V ^8  d   QhRS[ RS[ RS[ RS[ R,          RS[RS[ RS[S[ S[3,          /# )	r   r   region
safesearch	timelimitNpagekwargsr   )r   intdictr   )r   __classdict__s   "r   r   Bing.__annotate__2   s]        	
 :   
c3hr   c                   VP                  4       P                  R4      w  rxRVRVRV/p	RRV RV RV RV 2RR	V RV R
V RV 2/p
V P                  P                  P	                  RV
4       V'       dP   \        \        4       R,          4      pVR8X  d   RVR,
           RV 2MRRRRRRR/V,          ,           pRV R2V	R&   V^8  d-   V^,
          ^
,           V	R&   RV^8  d
   V^,
          MR 2V	R&   V	# )z,Build a payload for the Bing search request.-qpqcc_EDGE_CDzm=z&u=_EDGE_Szmkt=z&ui=zhttps://www.bing.comiQ yez5_im  _ezd1w2m3zex1:""filtersfirstPERE FORM)lowersplithttp_clientclientset_cookiesr0   r   )selfr   r+   r,   r-   r.   r/   countrylangpayloadcookiesr?   codes   &&&&&&,      r   build_payloadBing.build_payload2   s.    ,,S1tUD$7"TF!G9CvQwi@dV1WIT$q	B
 	++,BGLDFeO$A+4+;T!c'!A3'cSVX[]`beHfgpHqAqD#(aGI!8#'!8r/!2GG $TAXr$BCGFOr   c                F   < V ^8  d   QhRS[ S[,          RS[ S[,          /# )r   resultsr   )listr	   )r   r2   s   "r   r   r3   L   s%     	 	D,< 	jAQ 	r   c                "   . pV F  pVP                   P                  R4      '       d   K&  VP                   P                  R4      '       d/   \        VP                   4      ;'       g    VP                   Vn         VP                  V4       K  	  V# )zPost-process search results.zhttps://www.bing.com/aclick?zhttps://www.bing.com/ck/a?)r(   
startswithr!   append)rP   rY   post_resultsresults   &&  r   post_extract_resultsBing.post_extract_resultsL   sr    F{{%%&DEE{{%%&BCC-fkk:IIfkk'  r   c                L   < V ^8  d   Qh/ S[ S[S[S[3,          ,          ;R&   # )r   elements_xpath)r   r   r   )r   r2   s   "r   r   r3      s"      WS#X./  r    N)   )__name__
__module____qualname____firstlineno____doc__disablednamecategoryprovider
search_urlsearch_methoditems_xpathrc   rV   r`   __annotate_func____static_attributes____classdictcell__)r2   s   @r   r#   r#      s^     HDHH.JM4K"3N 4	 	[  r   r#   )rj   r   collections.abcr   r   typingr   r   urllib.parser   r   	ddgs.baser   ddgs.resultsr	   r!   r#   rd   r   r   <module>rz      s4    (  #    + & #$6J' 6r   