
    !}g                     >    d dl mZ g dZg dZ G d de          ZdS )   Video)iframeembedobjectvideo)youtubevimeodailymotionkewegoc                   `    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )VideoExtractorz3Extracts a list of video from Article top node
    c                 z    || _         | j                                         | _        || _        g | _        g | _        d S N)config
get_parserparsertop_node
candidatesmovies)selfr   r   s      [/var/www/py-google-trends/myenv/lib/python3.11/site-packages/newspaper/videos/extractors.py__init__zVideoExtractor.__init__   s7    k,,..     c                     d                     d | j                            |                                          D                       S )N c                 6    g | ]}|                                 S  )strip).0lines     r   
<listcomp>z1VideoExtractor.get_embed_code.<locals>.<listcomp>   s6     E E E JJLLE E Er   )joinr   nodeToString
splitlinesr   nodes     r   get_embed_codezVideoExtractor.get_embed_code   sX    ww E E0066AACCE E E F F 	Fr   c                 6    | j                             |          S r   )r   getTagr&   s     r   get_embed_typezVideoExtractor.get_embed_type   s    {!!$'''r   c                 8    | j                             |d          S )Nwidthr   getAttributer&   s     r   	get_widthzVideoExtractor.get_width   s    {''g666r   c                 8    | j                             |d          S )Nheightr.   r&   s     r   
get_heightzVideoExtractor.get_height   s    {''h777r   c                 8    | j                             |d          S )Nsrcr.   r&   s     r   get_srczVideoExtractor.get_src    s    {''e444r   c                 .    |rt           D ]
}||v r|c S d S r   )VIDEO_PROVIDERS)r   r5   providers      r   get_providerzVideoExtractor.get_provider#   s5     	$+ $ $s??#OOO #tr   c                 d   t                      }|                     |          |_        |                     |          |_        |                     |          |_        |                     |          |_        | 	                    |          |_
        |                     |j
                  |_        |S )z1Create a video object from a video embed
        )r   r(   
embed_coder+   
embed_typer0   r-   r3   r2   r6   r5   r:   r9   )r   r'   r   s      r   	get_videozVideoExtractor.get_video*   s     ..t44..t44nnT**t,,LL&&	**5955r   c                 ,    |                      |          S r   )r>   r&   s     r   get_iframe_tagzVideoExtractor.get_iframe_tag6   s    ~~d###r   c                     t                      S )z Extract html video tags
        r   r&   s     r   get_video_tagzVideoExtractor.get_video_tag9   s     wwr   c                     | j                             |          }|5| j                             |          }|dk    r|                     |          S |                     |          S )Nr   )r   	getParentr*   get_object_tagr>   )r   r'   parent
parent_tags       r   get_embed_tagzVideoExtractor.get_embed_tag>   se     &&t,,++F33JX%%**4000~~d###r   c                    | j                             |d          }|r/|d         | j        v r | j                            |d                    | j                             |ddd          }|sd S | j                             |d         d          }|                     |          }|sd S |                     |          }||_        ||_        |S )Nr       paramnamemovie)tagattrvaluerP   )	r   getElementsByTagr   remover/   r:   r>   r9   r5   )r   r'   child_embed_tagsrc_noder5   r9   r   s          r   rE   zVideoExtractor.get_object_tagI   s     +66tWEE 	7q1T_DDO""?1#5666 ;//gF' 0 ; ; 	4k&&x{G<< $$S)) 	4t$$!	r   c                 h   | j                             | j        t                    | _        | j        D ]m}| j                             |          }d|z  }t          | |          r< t          | |          |          }|!|j        | j	        
                    |           nt          | j	                  S )Nz
get_%s_tag)r   getElementsByTagsr   VIDEOS_TAGSr   r*   hasattrgetattrr9   r   appendlist)r   	candidaterN   rO   rM   s        r   
get_videoszVideoExtractor.get_videosd   s    +77M;( (  	. 	.I+$$Y//C#%DtT"" .+d++I66$)CK&&u---DK   r   N)__name__
__module____qualname____doc__r   r(   r+   r0   r3   r6   r:   r>   r@   rB   rH   rE   r]   r   r   r   r   r      s           F F F
( ( (7 7 78 8 85 5 5  
 
 
$ $ $  
	$ 	$ 	$  6! ! ! ! !r   r   N)videosr   rW   r8   r   r   r   r   r   <module>rc      sk         444???i! i! i! i! i!V i! i! i! i! i!r   