o
    il                     @   s`   d dl mZ d dlmZ ddlmZmZmZ G dd deZG dd deZ	G d	d
 d
eZ
dS )   )
BunnyCdnIE)InfoExtractor   )make_archive_idtry_getunified_timestampc                   @   s$   e Zd ZddiZdd Zdd ZdS )SovietsClosetBaseIERefererz!https://iframe.mediadelivery.net/c                 C   s&   | j ||d| dd}| ||dS )NzDownloading z __NUXT_JSONP__)note__NUXT_JSONP__)_download_webpage_search_nuxt_data)selfnuxt_jsonp_urlvideo_idname
nuxt_jsonp r   R/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/sovietscloset.pyparse_nuxt_jsonp	   s   z$SovietsClosetBaseIE.parse_nuxt_jsonpc                 C   s\   |}|r|dkr|d| 7 }|r|d| 7 }t |}||| jdd||dddd|||dS )	NMisc - z #SovietWomble"https://www.twitch.tv/SovietWombleTpublic)idtitle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i 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d$d%gd&d'd(d)i 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d0d d1d2d3dgd$d4gd&d'gZd5d6 Zd7S )8SovietsClosetIEz<https?://(?:www\.)?sovietscloset\.com/video/(?P<id>[0-9]+)/?z$https://sovietscloset.com/video/1337 bd012b04b261725510ca5383074cdd55r   z$2f0cfbf4-3588-43a9-a7d6-7c9ea3755e67extmp4r   zThe Witcher #13	thumbnailzPre:^https?://.*\.b-cdn\.net/2f0cfbf4-3588-43a9-a7d6-7c9ea3755e67/thumbnail\.jpg$r   r   r   r    iXrelease_date20170413r!   upload_dater"   r#   r   durationi`  r$   Tr%   r   r&   The Witcherr'   r      z
Episode 13 zsovietscloset 1337)r(   episodecreatorsdescription_old_archive_ids)urlmd5	info_dictz$https://sovietscloset.com/video/1105 89fa928f183893cb65a0b7be846d8a90z$c0e5e76f-3a93-40b4-bf01-12343c2eec5dzArma 3 - Zeus Games #5zPre:^https?://.*\.b-cdn\.net/c0e5e76f-3a93-40b4-bf01-12343c2eec5d/thumbnail\.jpg$iP}W20160420ie"  zArma 3z
Zeus Games   z	Episode 5zsovietscloset 1105c                 C   s   |  |}| ||}| d|d}d| }| | d| d|dd }| jd|d	  ftd
d| j||d d t|dd t|	d|	dddt
| |giS )N(/_nuxt/static/\d+)staticAssetsBasehttps://sovietscloset.comz/video//payload.jsvideostreamz,https://iframe.mediadelivery.net/embed/5105/bunnyIdT)ieurl_transparentgamer   c                 S   s   | d d S )Nsubcategoryr   r   )xr   r   r   <lambda>r   s    z/SovietsClosetIE._real_extract.<locals>.<lambda>numberdater   r*   r+   r(   r,   r@   )	_match_idr   _search_regexr   
url_resultr   r-   r   strgetr   )r   rA   r   webpagestatic_assets_baserL   r   r   r   _real_extracte   s$   


zSovietsClosetIE._real_extractNr.   r/   r0   
_VALID_URL_TESTSr^   r   r   r   r   r1   (   s    	
	
;r1   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      )rA   rC   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|v r<| d\n| d	tfd
d|D tfddd D d d   dd phdpo}d	kr|d dp| 7 } fddt	 d D }
|||S )N/rG   rH   rI   rJ   globalgamesmiscc                 3   s$    | ]}|d     kr|V  qdS )slugN)lower).0rP   )	game_slugr   r   	<genexpr>   s   " z8SovietsClosetPlaylistIE._real_extract.<locals>.<genexpr>c                 3   s(    | ]}| d d  kr|V  qdS )rl   r<   N)r[   rm   )rn   cat)category_slugr   r   rp      s   & subcategories    rl   r<   r   r   c                    s\   g | ]*\}}i j d |d  t dj|d d  d|d |ddqS )z https://sovietscloset.com/video/r   )rN   r   r   rU   rV   )rY   r1   ie_keyr-   r[   )rn   irL   )categoryrP   r   r   r   
<listcomp>   s    z9SovietsClosetPlaylistIE._real_extract.<locals>.<listcomp>streams)rW   endswithr   rX   r   rm   splitnextr[   	enumerateplaylist_result)r   rA   playlist_idr\   r]   sovietsclosetplaylist_titleentriesr   )rw   rr   rP   ro   r   r   r^      s.   




z%SovietsClosetPlaylistIE._real_extractNr_   r   r   r   r   rb   w   s8    			$rb   N)bunnycdnr   commonr   utilsr   r   r   r   r1   rb   r   r   r   r   <module>   s    "O