U
    g)                     @   sH   d dl Z ddlmZ ddlmZmZmZmZmZm	Z	 G dd deZ
dS )    N   )InfoExtractor   )determine_extextract_attributesint_or_none
str_to_inturl_or_noneurlencode_postdatac                   @   sR   e Zd ZdZdZddddddeed	d
dddddddeedd
gZdd ZdS )
ManyVidsIEFz6(?i)https?://(?:www\.)?manyvids\.com/video/(?P<id>\d+)z9https://www.manyvids.com/Video/133957/everthing-about-me/Z 03f11bb21c52dd12a05be21a5c7dcc97Z133957mp4zeverthing about me (Preview)Zellyxxix)idexttitleuploader
view_count
like_count)urlmd5Z	info_dictz5https://www.manyvids.com/Video/935718/MY-FACE-REVEAL/Z bb47bab0e0802c2a60c24ef079dfe60fZ935718zMY FACE REVEALz$md5:ec5901d41808b3746fed90face161612zSarah Calanthe)r   r   r   descriptionr   r   r   c              
      s    |d d}z |W n  tk
rF    |Y nX  jdddd}t|} jdddd}t|}|d	d
f|ddf|ddf jdd ddff}dFdd|dfdd}||dp jddd dp jdddd}t	
dd|p$|}tfddd D rF|d!7 } jd"d#d d$d%}|r jd&d'dt|d(|d)d*d+ g }	|D ]V\}
}t|
}
|
sqt|
d,kr|	 j|
d-d.d/d0 n|	|
|d1 q |	 |	D ]}|d2d kr&t jd3|d4 d5d d|d2< d6|d4 krZd7td |d8d9f|d8< d:|d;< d|d8 kr|d;d<d= |d;< q fd>d?} fd@dA}||	|dB|dt|dCpt|dD| | dES )GNzhttps://www.manyvids.com/video/z/gtm.jsz5(<div\b[^>]*\bid\s*=\s*(['"])pageMetaDetails\2[^>]*>)zmeta details defaultz5(<div\b[^>]*\bid\s*=\s*(['"])rmpPlayerStream\2[^>]*>)zplayer detailszdata-meta-videovideozdata-video-transcodedZ
transcodedzdata-video-filepathfilepathF)securer   Zog_videoc                 S   s   t | tr|  p|S |S N)
isinstancestrstrip)sr    r!   =/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/manyvids.pytxt_or_noneG   s    z-ManyVidsIE._real_extract.<locals>.txt_or_nonezdata-meta-authorc                    s(   r t dt  dd| }  | S )Nz^\s*z\s+[|-]r   )resubescape)r    )r#   r   r!   r"   
mung_titleL   s    z,ManyVidsIE._real_extract.<locals>.mung_titlezdata-meta-title)z,<span[^>]+class=["\']item-title[^>]+>([^<]+)z+<h2[^>]+class=["\']h2 m-0["\'][^>]*>([^<]+)r   ztwitter:titleT)fatalz\s*[|-]\s+ManyVids\s*$c                 3   s   | ]}| kV  qd S r   r!   ).0p)webpager!   r"   	<genexpr>\   s     z+ManyVidsIE._real_extract.<locals>.<genexpr>)Zpreview_videosz_preview.mp4z
 (Preview)z-data-mvtoken=(["\'])(?P<value>(?:(?!\1).)+)\1zmv tokenvalue)r   groupzIhttps://www.manyvids.com/includes/ajax_repository/you_had_me_at_hello.phpzSetting format cookies)ZmvtokenZvidZXMLHttpRequest)ZRefererzX-Requested-With)Znoter(   dataheadersZm3u8r   Zm3u8_nativeZhls)Zentry_protocolZm3u8_id)r   	format_idheightz_(\d{2,3}[02468])_r   zvideo heightz	/preview/_r1   previewiZ
preferencer   c                     s0    j d dddd} t| } t| dS )Nz (<a\b[^>]*\bdata-id\s*=\s*(['"])z	\2[^>]*>)likesr   r   z
data-likes)_search_regexr   r   get)r6   )selfvideo_idr+   r!   r"   	get_likes   s    
  z+ManyVidsIE._real_extract.<locals>.get_likesc                      s   t  jddd dS )Nz\(?s)<span\b[^>]*\bclass\s*=["']views-wrapper\b[^>]+>.+?<span\b[^>]+>\s*(\d[\d,.]*)\s*</span>z
view countr   )r   _html_search_regexr!   )r9   r+   r!   r"   	get_views   s      z+ManyVidsIE._real_extract.<locals>.get_viewszdata-meta-descriptionzdata-meta-imagezdata-video-screenshot)r   r   formatsr   r   Z	thumbnailr   r   )N)Z	_match_idZ_download_webpage	Exceptionr7   r   r8   Z_og_search_video_urlr<   Z_html_search_metar$   r%   anyr
   r	   r   extendZ_extract_m3u8_formatsappendZ_remove_duplicate_formatsr   joinfilter)r9   r   Zreal_urlinfoZplayerZvideo_urls_and_idsr'   r   Zmv_tokenr>   Zv_urlfmtfr;   r=   r!   )r9   r#   r   r:   r+   r"   _real_extract,   s    
    
     	        

zManyVidsIE._real_extractN)__name__
__module____qualname__Z_WORKINGZ
_VALID_URLintZ_TESTSrH   r!   r!   r!   r"   r      s2   r   )r$   commonr   utilsr   r   r   r   r	   r
   r   r!   r!   r!   r"   <module>   s    
