U
    g                      @   sP   d dl mZ ddlmZmZ G dd deZG dd deZG dd	 d	eZd
S )   )InfoExtractor   )try_getunified_timestampc                   @   s$   e Zd ZddiZdd Zdd ZdS )SovietsClosetBaseIEZRefererz!https://iframe.mediadelivery.net/c                 C   s&   | j ||d| dd}| ||dS )NzDownloading z __NUXT_JSONP__)noteZ__NUXT_JSONP__)_download_webpageZ_search_nuxt_data)selfZnuxt_jsonp_urlvideo_idnameZ
nuxt_jsonp r   B/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/sovietscloset.pyparse_nuxt_jsonp   s    z$SovietsClosetBaseIE.parse_nuxt_jsonpc                 C   s\   |}|r|dkr|d| 7 }|r0|d| 7 }t |}||| jdd||dddd|||dS )	NMisc - z #SovietWomble"https://www.twitch.tv/SovietWombleTpublic)idtitleZhttp_headersuploadercreatorrelease_timestamp	timestampuploader_iduploader_urlwas_liveavailabilityseriesseasonepisode_number)r   MEDIADELIVERY_REFERER)r	   r
   	game_namecategory_namer    stream_dater   r   r   r   r   
video_meta   s*    zSovietsClosetBaseIE.video_metaN)__name__
__module____qualname__r!   r   r%   r   r   r   r   r      s   r   c                   @   s   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dddddddddddddd d!dgZd"d# Zd$d% Zd&S )'SovietsClosetIEz<https?://(?:www\.)?sovietscloset\.com/video/(?P<id>[0-9]+)/?z$https://sovietscloset.com/video/1337Z bd012b04b261725510ca5383074cdd55Z1337Zmp4zThe Witcher #13zPre:^https?://.*\.b-cdn\.net/2f0cfbf4-3588-43a9-a7d6-7c9ea3755e67/thumbnail\.jpg$r   iXZ20170413r   i_  Tr   The Witcherr      z
Episode 13)r   extr   	thumbnailr   r   r   release_dater   upload_dater   r   durationr   r   r   r   r    episode)urlmd5	info_dictz$https://sovietscloset.com/video/1105Z 89fa928f183893cb65a0b7be846d8a90Z1105zArma 3 - Zeus Games #5zPre:^https?://.*\.b-cdn\.net/c0e5e76f-3a93-40b4-bf01-12343c2eec5d/thumbnail\.jpg$iP}WZ20160420id"  zArma 3z
Zeus Games   z	Episode 5)r   r,   r   r   r-   r   r   r.   r   r/   r   r   r0   r   r   r   r   r    r1   c                 C   sx   | j d| |d| jd}| d|d}| d|d}| j||| jd}|sRd }n| j|d	 d
 || jd}|||dS )Nz,https://iframe.mediadelivery.net/embed/5105/zDownloading BunnyCDN iframe)r   headersz(https?://.*?\.m3u8)zm3u8 urlz(https?://.*?thumbnail\.jpg)zthumbnail url)r6       r2   )formatsr-   r0   )r   r!   _search_regexZ_extract_m3u8_formatsZ_extract_m3u8_vod_duration)r	   r
   Zbunnycdn_idiframeZm3u8_urlZthumbnail_urlZm3u8_formatsr0   r   r   r   _extract_bunnycdn_iframe^   s(      
  z(SovietsClosetIE._extract_bunnycdn_iframec                 C   s   |  |}| ||}| d|d}d| }| | d| d|dd }| j||d d	 t|d
d t|d|dd| ||d S )N(/_nuxt/static/\d+)staticAssetsBasehttps://sovietscloset.comz/video//payload.jsvideostreamgamer   c                 S   s   | d d S )NZsubcategoryr   r   )xr   r   r   <lambda>       z/SovietsClosetIE._real_extract.<locals>.<lambda>numberdater
   r"   r#   r    r$   ZbunnyId)		_match_idr   r9   r   r%   r   strgetr;   )r	   r2   r
   webpagestatic_assets_baserA   r   r   r   _real_extractt   s    

 
 zSovietsClosetIE._real_extractN)r&   r'   r(   
_VALID_URL_TESTSr;   rN   r   r   r   r   r)   '   sd   5r)   c                   @   s\   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gZdd ZdS )SovietsClosetPlaylistIEz=https?://(?:www\.)?sovietscloset\.com/(?!video)(?P<id>[^#?]+)z%https://sovietscloset.com/The-WitcherzThe-Witcherr*   )r   r      )r2   r4   Zplaylist_mincountz+https://sovietscloset.com/Arma-3/Zeus-GameszArma-3/Zeus-GameszArma 3 - Zeus Games   z,https://sovietscloset.com/arma-3/zeus-games/zarma-3/zeus-gamesz-https://sovietscloset.com/Total-War-WarhammerzTotal-War-Warhammerz!Total War: Warhammer - Greenskins!   c                    s.   |}|dr |d d }||}d|d}d| }| d|dd }d|krx| d\n| d	tfd
d|D tfddd D d d   dd pЈdpވ}d	kr|d dp 7 } fddt	 d D }
|||S )N/r<   r=   r>   r?   globalZgamesmiscc                 3   s"   | ]}|d     kr|V  qdS )slugN)lower).0rB   )	game_slugr   r   	<genexpr>   s      z8SovietsClosetPlaylistIE._real_extract.<locals>.<genexpr>c                 3   s&   | ]}| d d  kr|V  qdS )rY    N)rK   rZ   )r[   cat)category_slugr   r   r]      s      Zsubcategoriesr7   rY   r^   r   r   c                    sX   g | ]P\}}j d |d  t dj|d d  d|d |ddqS )z https://sovietscloset.com/video/r   )Zier   r   rG   rH   )Z
url_resultr)   Zie_keyr%   rK   )r[   irA   )categoryrB   r	   r   r   
<listcomp>   s      z9SovietsClosetPlaylistIE._real_extract.<locals>.<listcomp>Zstreams)rI   endswithr   r9   r   rZ   splitnextrK   	enumerateZplaylist_result)r	   r2   Zplaylist_idrL   rM   ZsovietsclosetZplaylist_titleentriesr   )rb   r`   rB   r\   r	   r   rN      s.    





z%SovietsClosetPlaylistIE._real_extractN)r&   r'   r(   rO   rP   rN   r   r   r   r   rQ      s6   			$rQ   N)commonr   utilsr   r   r   r)   rQ   r   r   r   r   <module>   s   "_