
    ^iF                     l    S r SSKrSSKJr  SSKJrJr  SSKJr  SSK	J
r
  SSKJr   " S S	\\
   5      rg)
z/Duckduckgo videos search engine implementation.    N)Mapping)AnyClassVar)BaseSearchEngine)VideosResult)_extract_vqdc                       \ rS rSr% SrSrSrSrSrSr	SS	S
SSSSSSSSSSS.r
\\\\4      \S'   S\S\4S jr S$S\S\S\S\S-  S\S\S\\\4   4S  jjrS!\S\\   4S" jrS#rg)%DuckduckgoVideos   z Duckduckgo videos search engine.
duckduckgovideosbingzhttps://duckduckgo.com/v.jsGETcontentdescriptionduration
embed_html	embed_urlimage_tokenimagesprovider	published	publisher
statisticstitleuploader)r   r   r   r   r   r   r   r   r   r   r   r   r   elements_replacequeryreturnc                 f    U R                   R                  SSSU0S9R                  n[        X!5      $ )z2Get vqd value for a search query using DuckDuckGo.r   zhttps://duckduckgo.comq)params)http_clientrequestr   r   )selfr   resp_contents      X/home/james-whalen/.local/lib/python3.13/site-packages/ddgs/engines/duckduckgo_videos.py_get_vqdDuckduckgoVideos._get_vqd&   s8    ''//7OY\^cXd/emmL00    region
safesearch	timelimitNpagekwargsc                 r   SSSS.nU(       a  SU 3OSnUR                  S5      nUR                  S5      n	UR                  S	5      n
U(       a  S
U 3OSnU	(       a  SU	 3OSn	U
(       a  SU
 3OSn
USUU R                  U5      U SU SU	 SU
 3XsR                  5          S.nUS:  a  US-
  S-   US'   U$ )z'Build a payload for the search request.1z-1z-2)onmoderateoffzpublishedAfter: 
resolutionr   license_videoszvideoDefinition:zvideoDuration:zvideoLicense:json,)lor!   vqdfp   <   s)getr(   lower)r%   r   r+   r,   r-   r.   r/   safesearch_baser6   r   r7   payloads               r'   build_payloadDuckduckgoVideos.build_payload+   s     "%$tD5>oi[1B	ZZ-
::j)$458B'
|4
2:^H:.=K=(89QS==';a
|1XJa7GH !1!1!34
 !8#ax2o.GCLr*   	html_textc                 ,   [         R                  " U5      nUR                  S/ 5      n/ nU Hc  n[        5       nU R                  R                  5        H'  u  pxUR                  U5      n	UR                  X5        M)     UR                  U5        Me     U$ )z&Extract search results from lxml tree.results)r8   loadsrB   r   r   items__setattr__append)
r%   rH   	json_datarL   rJ   itemresultkeyvaluedatas
             r'   extract_results DuckduckgoVideos.extract_resultsI   s    JJy)	i,D!^F"3399;
xx}""5/ < NN6"  r*    )r?   )__name__
__module____qualname____firstlineno____doc__namecategoryr   
search_urlsearch_methodr   r   r   str__annotations__r(   intdictr   rF   listr   rU   __static_attributes__rW   r*   r'   r
   r
      s    *DHH.JM $" $  "5hwsCx01  1c 1c 1   	
 :   
c3h< l1C r*   r
   )r\   r8   collections.abcr   typingr   r   	ddgs.baser   ddgs.resultsr   
ddgs.utilsr   r
   rW   r*   r'   <module>rl      s.    5  #   & % #H'5 Hr*   