U
    $Pf                     @   s\   d dl mZ d dlZddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZ G dd	 d	eZdS )
    )unicode_literalsN   )InfoExtractor   )
compat_str)ExtractorErrorfloat_or_noneint_or_nonestr_or_nonetry_getc                   @   sd   e Zd ZdZdddddddd	d
dddddddddddddddddddddgZdd ZdS )	MedalTVIEz3https?://(?:www\.)?medal\.tv/clips/(?P<id>[^/?#&]+)z$https://medal.tv/clips/2mA60jWAGQCBHZ 7b07b064331b1cf9e8e5c52a06ae68faZ2mA60jWAGQCBHZmp4z	Quad ColdzMedal,https://medal.tv/desktop/ZMowgliSBiR\_Z20201020Z10619174)idexttitledescriptionuploader	timestampZupload_dateuploader_id)urlmd5Z	info_dictz$https://medal.tv/clips/2um24TWdty0NAZ b6dc76b78195fff0b4f8bf4a33ec2148Z2um24TWdty0NAzu tk me i tk u biggerZMimicci8_Z20201117Z5156321z$https://medal.tv/clips/37rMeFpryCC-9T)r   Zonly_matchingz$https://medal.tv/clips/2WRj40tpY_EU9c                    s  |  || |}| | jd|ddd}t|fddtpFi }|sXtdd|d	 }t|d
}t|d}|r|r|| nd d) fdd	}g }	g }
|	 D ]\}}|rt
|tsqtd|}|sq|d}t|d}|dkr||	||p||rd ndd q|dkr||
||d q|d}|	sv|rv|dkrdtdddntd|d| |	 t|dd tpi }t|d}|rd|nd }||	|
|d |d!t|d"d#||t|d$t|d%t|d&t|d'd(S )*NzB<script[^>]*>\s*(?:var\s*)?hydrationData\s*=\s*({.+?})\s*</script>zhydration dataz{})defaultc                    s   | d   S )NZclips xvideo_idr   @/tmp/pip-unpacked-wheel-7zdooeg3/youtube_dl/extractor/medaltv.py<lambda>>       z)MedalTVIE._real_extract.<locals>.<lambda>z!Could not find video information.r   ZcontentTitleZsourceWidthZsourceHeightgqq?	format_idc              
      sF   |p
d| }||krd S t t | }| d|||d|d|i d S )Nz%dpr   widthheight)introundappend)	containerZitem_urlr!   Zid_keyitem_idr    )aspect_ratior   r   add_itemJ   s        z)MedalTVIE._real_extract.<locals>.add_itemz"(contentUrl|thumbnail)(?:(\d+)p)?$r   r   Z
contentUrlsource)r&   Z	thumbnailr   errori  zThat clip does not exist.T)expectedr   z An unknown error occurred ({0}).c                 S   s   t | d  d S )NZprofilesr   )listvaluesr   r   r   r   r   w   r   zhttps://medal.tv/users/{0}ZcontentDescriptionZdisplayNamecreatedi  ZvideoLengthSecondsZviewsZlikescomments)r   r   formats
thumbnailsr   r   r   r   Zuploader_urldurationZ
view_countZ
like_countZcomment_count)r   N)Z	_match_idZ_download_webpageZ_parse_jsonZ_search_regexr   dictr   r	   getitems
isinstancer   rematchgroupformatZ_sort_formatsr
   r   )selfr   ZwebpageZhydration_dataZclipr   Zsource_widthZsource_heightr(   r0   r1   kvZmobjprefixr!   r*   authorZ	author_idZ
author_urlr   )r'   r   r   _real_extract5   s    
   
  

  

 
  zMedalTVIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLZ_TESTSr@   r   r   r   r   r      sB   "r   )
__future__r   r7   commonr   compatr   utilsr   r   r	   r
   r   r   r   r   r   r   <module>   s
   	