
    ^iW                         S r SSKrSSKJr  SSKJr  SSKJrJrJr  SSK	J
r
Jr  SSKJr  SSKJr  \R                   " S	\R"                  5      rS
\S\4S jr " S S\\   5      rg)z Bing news engine implementation.    N)Mapping)suppress)datetime	timedeltatimezone)AnyClassVar)BaseSearchEngine)
NewsResultuA   \b(\d+)\s*(days|tagen|jours|giorni|dias|días|дн\.|день)?\bpub_date_strreturnc                    / SQnU H]  n[        [        5         [        R                  " X5      R	                  [
        R                  5      R                  5       sSSS5        s  $    [        R                  U 5      nU(       ac  [        UR                  S5      5      n[        R                  " [
        R                  5      [        US9-
  R                  SS9R                  5       $ U $ ! , (       d  f       M  = f)zExtract date from string.)z%d.%m.%Yz%m/%d/%Yz%d/%m/%YN   )daysr   )microsecond)r   
ValueErrorr   strptime
astimezoner   utc	isoformatDATE_REsearchintgroupnowr   replace)r   date_formatsdate_formatmatchdays_agos        P/home/james-whalen/.local/lib/python3.13/site-packages/ddgs/engines/bing_news.pyextract_dater"      s     8L#j!$$\?JJ8<<Xbbd "! $
 NN<(Eu{{1~&X\\*YH-EENN[\N]ggii  "!s   AC))
C8	c                       \ rS rSr% SrSrSrSrSrSr	Sr
SS	S
SSSS.r\\\\4      \S'    SS\S\S\S\S-  S\S\S\\\4   4S jjrS\\   S\\   4S jrSrg)BingNews!   zBing news engine.bingnewsz,https://www.bing.com/news/infinitescrollajaxGETz#//div[contains(@class, 'newsitem')]z!.//span[@aria-label]//@aria-labelz@data-titlez .//div[@class='snippet']//text()z@urlz%.//a[contains(@class, 'image')]//@srcz@data-author)datetitlebodyurlimagesourceelements_xpathqueryregion
safesearch	timelimitNpagekwargsr   c                     UR                  5       R                  S5      u  pxUSUS-  S-    U UUS.n	U(       a  SSSSS	.U   U	S
'   U	$ )z,Build a payload for the Bing search request.-1
   r   )qInfiniteScrollfirstSFXccsetlangzinterval="4"zinterval="7"zinterval="9")dwmyqft)lowersplit)
selfr0   r1   r2   r3   r4   r5   countrylangpayloads
             r!   build_payloadBingNews.build_payload5   sn     ,,S1!r	AV
 ####	
 GEN     resultsc                     U HV  n[        UR                  5      Ul        UR                  (       a!  SUR                  R                  S5      S    3OSUl        MX     U$ )zPost-process search results.zhttps://www.bing.com&r    )r"   r)   r-   rF   )rG   rN   results      r!   post_extract_resultsBingNews.post_extract_resultsQ   sR    F&v{{3FKRXR^R^1&,,2D2DS2I!2L1MNdfFL  rM    )r   )__name__
__module____qualname____firstlineno____doc__namecategoryprovider
search_urlsearch_methoditems_xpathr/   r	   r   str__annotations__r   dictr   rK   listr   rS   __static_attributes__rU   rM   r!   r$   r$   !   s    DHH?JM7K328 3NHWS#X./    	
 :   
c3h8D,< jAQ rM   r$   )rZ   recollections.abcr   
contextlibr   r   r   r   typingr   r	   	ddgs.baser
   ddgs.resultsr   compile
IGNORECASEr   ra   r"   r$   rU   rM   r!   <module>rn      s]    & 	 #  2 2   & #
**Y[][h[h
is s $5
+ 5rM   