
    yf                      b    d dl mZ ddlmZmZ  G d de      Z G d de      Z G d d	e      Zy
)   )InfoExtractor   )try_getunified_timestampc                        e Zd ZddiZd Zd Zy)SovietsClosetBaseIERefererz!https://iframe.mediadelivery.net/c                 X    | j                  ||d| d      }| j                  ||d      S )NzDownloading z __NUXT_JSONP__)note__NUXT_JSONP__)_download_webpage_search_nuxt_data)selfnuxt_jsonp_urlvideo_idname
nuxt_jsonps        @/usr/lib/python3/dist-packages/yt_dlp/extractor/sovietscloset.pyparse_nuxt_jsonpz$SovietsClosetBaseIE.parse_nuxt_jsonp   s;    ++NH\Z^Y__nKo+p
%%j(<LMM    c                     |}|r|dk7  r|d| z  }|r|d| z  }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#   s           r   
video_metazSovietsClosetBaseIE.video_meta   s}    ]f4s=/**Er.)**E%k2	  66&%!*")@$#,
 	
r   N)__name__
__module____qualname__r+   r   r/    r   r   r   r      s    &(KLN
r   r   c                      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$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d.d d/d0d1d$d%gZd2 Zd3 Zy4)5SovietsClosetIEz<https?://(?:www\.)?sovietscloset\.com/video/(?P<id>[0-9]+)/?z$https://sovietscloset.com/video/1337 bd012b04b261725510ca5383074cdd55r   1337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)r*   episode)urlmd5	info_dictz$https://sovietscloset.com/video/1105 89fa928f183893cb65a0b7be846d8a901105zArma 3 - Zeus Games #5zPre:^https?://.*\.b-cdn\.net/c0e5e76f-3a93-40b4-bf01-12343c2eec5d/thumbnail\.jpg$iP}W20160420id"  zArma 3z
Zeus Games   z	Episode 5c                 ,   | j                  d| |d| j                        }| j                  d|d      }| j                  d|d      }| j                  ||| j                        }|sd }n$| j	                  |d	   d
   || j                        }|||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)rJ       rB   )formatsr:   r>   )r   r+   _search_regex_extract_m3u8_formats_extract_m3u8_vod_duration)r   r   bunnycdn_idiframem3u8_urlthumbnail_urlm3u8_formatsr>   s           r   _extract_bunnycdn_iframez(SovietsClosetIE._extract_bunnycdn_iframea   s    '':;-H8$B\B\ ( ^ %%&=vzR**+JFTcd11(HdNhNh1iH66Q&$:T:T 7 VH $& 
 	
r   c           
      r   | j                  |      }| j                  ||      }| j                  d|d      }d| }| j                  | d| d|d      d   }i | j	                  ||d   d	   t        |d
 t              |j                  d      |j                  d            | j                  ||d         S )N(/_nuxt/static/\d+)staticAssetsBasehttps://sovietscloset.comz/video//payload.jsvideostreamgamer   c                     | d   d   S )Nsubcategoryr   r3   )xs    r   <lambda>z/SovietsClosetIE._real_extract.<locals>.<lambda>   s    -8H8P r   numberdater   r,   r-   r*   r.   bunnyId)		_match_idr   rM   r   r/   r   strgetrU   )r   rB   r   webpagestatic_assets_baser\   s         r   _real_extractzSovietsClosetIE._real_extractw   s    >>#&((h7!//0FQcd89K8LM&&*<)=WXJk'Z\dfmnowx
oo!VF^F-C%f.PRUV%zz(3FAS  U

 ++HfY6GH
 	
r   N)r0   r1   r2   
_VALID_URL_TESTSrU   rk   r3   r   r   r5   r5   *   s   PJ :5fu * p	
 N > $Z 
 Z z ~  D D D   -!" &#$ #%''	
4 :5fu 1 N	
 p > $Z 
 Z z ~  D D D   (!" ,#$ #$&'	
53Fj
,
r   r5   c                   Z    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 Zy)SovietsClosetPlaylistIEz=https?://(?:www\.)?sovietscloset\.com/(?!video)(?P<id>[^#?]+)z%https://sovietscloset.com/The-WitcherzThe-Witcherr?   )r   r      )rB   rD   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                    | j                  |      }|j                  d      r|d d }| j                  ||      }| j                  d|d      }d| }| j	                  | d|d      d   }d|v r#|j                         j                  d      \  n|j                         d	t        fd
|D              }t        fd|d   D        |d   d         }|j                  dd      j                         xs |j                  d      xs }d	k7  r|d|j                  d      xs  z  }t        |d         D 	
cg c]o  \  }	}
i | j                  d|
d    t        j                               | j                  |
d   |d   |j                  d      |	dz   |
j                  d            q }}	}
| j                  |||      S c c}
}	w )N/rW   rX   rY   rZ   globalgamesmiscc              3   P   K   | ]  }|d    j                         k(  s|  yw)slugN)lower).0r]   	game_slugs     r   	<genexpr>z8SovietsClosetPlaylistIE._real_extract.<locals>.<genexpr>   s%     XTd6l6H6H6Ji6WDXs   &&c              3   j   K   | ]*  }|j                  d d      j                         k(  s'| , yw)r{    N)rh   r|   )r}   catcategory_slugs     r   r   z8SovietsClosetPlaylistIE._real_extract.<locals>.<genexpr>   s.     nQSATAZAZA\`mAmns   (33subcategoriesrK   r{   r   r   r   streamsz https://sovietscloset.com/video/r   )ier   rc   rd   )rf   endswithr   rM   r   r|   splitnextrh   	enumerate
url_resultr5   ie_keyr/   playlist_result)r   rB   playlist_idri   rj   sovietsclosetr]   categoryplaylist_titleir\   entriesr   r~   s               @@r   rk   z%SovietsClosetPlaylistIE._real_extract   s   nnS)$%cr*K((k:!//0FQcd89K8LM--1C0DK.PR]_ghipq+'2'8'8':'@'@'E$I}#))+I"MX]XXn_(=n_-a02 VR0668IM&)6YF"HLL$8$IM#JKKN %Xi%89;
 a
oo @OTcTjTjTlom
oofX\\Z`Ma 1u&**V2D  F
 ; ; ##G[.II;s   A4GN)r0   r1   r2   rl   rm   rk   r3   r   r   ro   ro      s    QJ ;#& "$	
 A). "#	
 B). "#	
 C+< "$	
5"FH Jr   ro   N)commonr   utilsr   r   r   r5   ro   r3   r   r   <module>r      s;    !
- 
D\
) \
~FJ1 FJr   