
    V|h1$              	           S SK r S SKrSSKJr  SSKJrJrJrJrJ	r	J
r
  SSKJr  SrSrS	\< S
\< S3S\-  S\< S
\< S3S\-  S\< S
\< S3S.r " S S\5      r " S S\5      r " S S\5      rg)    N   )InfoExtractor   )ExtractorErrorOnDemandPagedListint_or_nonejoin_nonemptyparse_qsurljoin)traverse_objz
    _id
    clipImageSource
    clipImageThumb
    clipLink
    clipTitle
    createdDate
    shareId
    user { _id }
    username
    viewsz!
    clipLength
    clipSizeByteszQquery ($id: String!) {
        video: getClip(clipIdentifier: $id) {
             z
        }
    }zfquery ($id: String!) {
        video: getMontage(clipIdentifier: $id) {
            %s
        }
    }zquery ($page: Int!, $user: String!, $game: Int) {
        videos: clips(search: createdDate, page: $page, user: $user, mobile: false, game: $game) {
            data { z }
        }
    }zquery ($page: Int!, $user: String!) {
        videos: montages(search: createdDate, page: $page, user: $user) {
            data { %s }
        }
    }zquery ($page: Int!, $user: String!) {
        videos: clips(search: createdDate, page: $page, user: $user, mobile: true) {
            data { )clipmontageClipsMontagesMobile Clipsc                   .    \ rS rSr\S 5       rSS jrSrg)AllstarBaseIE<   c                    S n[        U S[        14S[        14S[        14SU14SSU104S[        14S	[        14S
[        SS914S[        14SS[        14S[        14S.5      nUR                  S5      (       a4  UR                  S5      (       a  SUS   ;   a  SOSnSU SU SUS    3US'   UR	                  [
        R                  5       [
        R                  [        SUR                  S5      5      S.5        U$ )Nc                     [        SU 5      $ )Nzhttps://media.allstar.gg/)r   )paths    R/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/allstar.pymedia_url_or_none:AllstarBaseIE._parse_video_data.<locals>.media_url_or_none?   s    6==    _idshareId	clipTitleclipLink)clipImageThumbclipImageSourceurl
clipLengthclipSizeBytescreatedDatei  )scaleusernameuserviews)id
display_idtitler#   
thumbnailsdurationfilesize	timestampuploaderuploader_id
view_countr+   z/clips/r   r   zhttps://allstar.gg/?=webpage_urlzhttps://allstar.gg/u/r3   )extractor_key	extractoruploader_url)	r   strr   getupdate	AllstarIEie_keyIE_NAMEr   )
video_datar   infobasenames       r   _parse_video_dataAllstarBaseIE._parse_video_data=   s(   	> J3%.$se,!C5)!2 34@5K\J]B^_%}5(;-8'+D*A)BC#cU+"EC51"[M2)
  88D>>dhhuoo!*d5k!9vyH$7z8*AdSWj\"ZD&--/"**#$;TXXm=TU
 	 r   Nc                     U R                  SXESS0[        R                  " X!S.5      R                  5       S9n[	        USSS[
        145      nU(       a  [        S	R                  U5      5      e[	        Xc5      $ )
Nzhttps://a1.allstar.gg/graphqlzcontent-typezapplication/json)	variablesquery)noteheadersdataerrors.messagez; )_download_jsonjsondumpsencoder   r;   r   join)selfrH   rG   r   video_idrI   responserL   s           r   	_call_apiAllstarBaseIE._call_api\   sy    &&+X#%78)DELLN ' P
 h3	C5(IJ 6!233H++r    )NN)__name__
__module____qualname____firstlineno__staticmethodrD   rV   __static_attributes__rX   r   r   r   r   <   s     <
,r   r   c                       \ rS rSrSrSSSSSSS	S
SSSSS\S.S.SSSSSS	SSSSSSSS\S.S.SSSS S!SS	S"SSSS#\S$.S.S%S&S'S S(SS	S)SSSS*\S$.S./rS+ rS,rg-).r>   i   zUhttps?://(?:www\.)?allstar\.gg/(?P<type>(?:clip|montage))\?(?P=type)=(?P<id>[^/?#&]+)z5https://allstar.gg/clip?clip=64482c2da9eec30008a67d1b64482c2da9eec30008a67d1bz4K on Infernoz$md5:66befb5381eef0c9456026386c25fa55z.re:https://media\.allstar\.gg/.+\.(?:png|jpg)$zchrk.mp4   iyCi-,Hd62b8bdfc9021052f7905882dz-https://allstar.gg/u/62b8bdfc9021052f7905882d20230425)r+   r-   r#   	thumbnailr2   extr/   r0   r1   r3   r:   upload_dater4   )r#   	info_dictz&https://allstar.gg/clip?clip=8LJLY4JKB64a1ec6b887f4c0008dc50b8	8LJLY4JKBzAK-47 3K on Miragez$md5:dde224fd12f035c0e2529a4ae34c4283   isrikdcherokee20230702)r+   r,   r-   r#   rg   rf   r/   r0   r1   r2   r3   r:   rh   r4   z;https://allstar.gg/montage?montage=643e64089da7e9363e1fa66c643e64089da7e9363e1fa66cAPQLGM2IMXWz#cherokee Rapid Fire Snipers Montagez$md5:a3ee356022115db2b27c81321d195945id>d20230418)r+   r,   r-   r#   rf   rg   r1   r2   r3   r:   rh   r4   z-https://allstar.gg/montage?montage=RILJMH6QOS64a2697372ce3703de29e868
RILJMH6QOSz$md5:d5672e6f88579730c2310a80fdbc4030izid20230703c                     U R                  U5      R                  SS5      u  p#U R                  U R                  [        R                  U5      SU0SU5      5      $ )Ntyper+   )rK   video)_match_valid_urlgrouprD   rV   _QUERIESr<   )rS   r#   query_idrT   s       r   _real_extractAllstarIE._real_extract   s\    !2237==fdK%%NNX&x(8:KXWX 	Xr   rX   N)	rY   rZ   r[   r\   
_VALID_URLint_TESTSr|   r^   rX   r   r   r>   r>   i   s    iJ G,$9J #5K%
$ 8,%)9J #"5K%
& M,':9J#"5K%
" ?,&:9J#"5K%
gCFJXr   r>   c                   l    \ rS rSrSrSSSS.SS.S	S
SS.SS.SSSS.SS.SSSS.SS./rSrS rS rSr	g)AllstarProfileIE   zDhttps?://(?:www\.)?allstar\.gg/(?:profile\?user=|u/)(?P<id>[^/?#&]+)z8https://allstar.gg/profile?user=62b8bdfc9021052f7905882dz62b8bdfc9021052f7905882d-clipszcherokee - Clips)r+   r-      )r#   ri   playlist_mincountz1https://allstar.gg/u/cherokee?game=730&view=Clipsz"62b8bdfc9021052f7905882d-clips-730zcherokee - Clips - 730z;https://allstar.gg/u/62b8bdfc9021052f7905882d?view=Montagesz!62b8bdfc9021052f7905882d-montageszcherokee - Montages   z:https://allstar.gg/profile?user=cherokee&view=Mobile Clipsz62b8bdfc9021052f7905882d-mobilezcherokee - Mobile Clipsr   
   c              #      #    US-  nU R                  UUUUS.SUSU 35       H  nU R                  U5      v   M     g 7f)Nr   )r)   pagegame)rK   videosrK   zDownloading page )rV   rD   )rS   user_idr,   r   rH   page_numrA   s          r   	_get_pageAllstarProfileIE._get_page   sX     A..#$  .z=Nxj;Y[J ((44[s   =?c                 x   U R                  U5      nU R                  [        SU5      U5      n[        USS[        145      nU(       d  [        S5      e[        USSS[        145      n[        U5      n[        USS[        145      n[        US	S
S9nUS;  a  [        SU< 35      eU R                  [        [        R                  " U R                  XBU[        R                  U5      5      U R                  5      [!        XHR#                  5       R%                  5       S   U5      [!        U=(       d    UXSS9S9$ )Nz(https://api.allstar.gg/v1/users/profile/rK   r   zUnable to extract the user idprofiler(   r   r   )viewr   r   )default)r   r   r   zUnsupported playlist URL type z - )delim)playlist_idplaylist_title)	_match_idrN   r   r   r;   r   r
   r   playlist_resultr   	functoolspartialr   rz   r<   
_PAGE_SIZEr	   lowersplit)	rS   r#   r,   profile_datar   r(   	url_queryr   r{   s	            r   r|   AllstarProfileIE._real_extract   s7   ^^C(
**>
KZY|fuu-EF !@AAvy:QTPU.VWSM	IK='AB	;H@@ #A(!NOO##!!NNGx||H?UWX\XgXgi &g~~/?/E/E/G/JDQ((*@j8Y^_ $ a 	ar   rX   N)
rY   rZ   r[   r\   r~   r   r   r   r|   r^   rX   r   r   r   r      s    XJ J2'
   C6-
   M5*
  L3.
 +F< J	5ar   r   )r   rO   commonr   utilsr   r   r   r	   r
   r   utils.traversalr   _FIELDS_EXTRA_FIELDSrz   r   r>   r   rX   r   r   <module>r      s      !  +
 ]	$
	 	 ]	$
	 	 ]	$+:*,M *,ZMX MX`Ca} Car   