a
    hl                     @   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 )SovietsClosetBaseIEZRefererz!https://iframe.mediadelivery.net/c                 C   s&   | j ||d| dd}| ||dS )NzDownloading z __NUXT_JSONP__)ZnoteZ__NUXT_JSONP__)_download_webpageZ_search_nuxt_data)selfZnuxt_jsonp_urlvideo_idnameZ
nuxt_jsonp r   S/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/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gddg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gZd%d& Zd'S )(SovietsClosetIEz<https?://(?:www\.)?sovietscloset\.com/video/(?P<id>[0-9]+)/?z$https://sovietscloset.com/video/1337Z bd012b04b261725510ca5383074cdd55z$2f0cfbf4-3588-43a9-a7d6-7c9ea3755e67Z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 zsovietscloset 1337)r   extr   	thumbnailr   r   r   release_dater   upload_dater   r   durationr   r   r   r    r!   episodecreatorsdescription_old_archive_ids)urlmd5	info_dictz$https://sovietscloset.com/video/1105Z 89fa928f183893cb65a0b7be846d8a90z$c0e5e76f-3a93-40b4-bf01-12343c2eec5dzArma 3 - Zeus Games #5zPre:^https?://.*\.b-cdn\.net/c0e5e76f-3a93-40b4-bf01-12343c2eec5d/thumbnail\.jpg$iP}WZ20160420ie"  zArma 3z
Zeus Games   z	Episode 5zsovietscloset 1105)r   r.   r   r   r/   r   r   r0   r   r1   r   r   r2   r   r   r   r    r!   r3   r4   r5   r6   c                 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/ZbunnyIdT)ieZurl_transparentgamer   c                 S   s   | d d S )NZsubcategoryr   r   )xr   r   r   <lambda>r       z/SovietsClosetIE._real_extract.<locals>.<lambda>numberdater   r#   r$   r!   r%   r6   )	_match_idr	   _search_regexr   
url_resultr   r&   r   strgetr   )r
   r7   r   webpagestatic_assets_baser@   r   r   r   _real_extracte   s$    


zSovietsClosetIE._real_extractNr'   r(   r)   Z
_VALID_URLZ_TESTSrP   r   r   r   r   r*   (   sn   ;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      )r7   r9   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|v 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>   rE   z8SovietsClosetPlaylistIE._real_extract.<locals>.<genexpr>c                 3   s&   | ]}| d d  kr|V  qdS )rZ   r-   N)rM   r[   )r\   cat)category_slugr   r   r^      rE   Zsubcategories    rZ   r-   r   r   c                    s\   g | ]T\}}i j d |d  t dj|d d  d|d |ddqS )z https://sovietscloset.com/video/r   )rA   r   r   rG   rH   )rK   r*   Zie_keyr&   rM   )r\   ir@   )categoryrB   r
   r   r   
<listcomp>   s   z9SovietsClosetPlaylistIE._real_extract.<locals>.<listcomp>Zstreams)rI   endswithr	   rJ   r   r[   splitnextrM   	enumerateZplaylist_result)r
   r7   Zplaylist_idrN   rO   ZsovietsclosetZplaylist_titleentriesr   )rc   r`   rB   r]   r
   r   rP      s.    





z%SovietsClosetPlaylistIE._real_extractNrQ   r   r   r   r   rR   w   s6   			$rR   N)Zbunnycdnr   commonr   utilsr   r   r   r   r*   rR   r   r   r   r   <module>   s
   "O