
    V|h                         S SK Jr  SSKJrJrJrJr   " S S\5      r " S S\5      r " S S	\5      r	 " S
 S\5      r
 " S S\
5      r " S S\
5      rg)   )InfoExtractor   )date_from_strformat_fieldtry_getunified_strdatec                       \ rS rSrS rSrg)MusicdexBaseIE
   c                 <   0 S[        U5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _SUR                  S5      _S[        USS	5      _S
UR                  S
5      _SUR                  S5      =(       d    /  Vs/ s H  oDR                  S5      PM     sn_SUR                  S5      _SUR                  S5      _SUR                  S5      =(       d    /  Vs/ s H  oUR                  S5      PM     sn_SUR                  S5      =(       d    /  Vs/ s H  oUR                  S5      PM     sn_S[        USS	5      _SUR                  S5      _S[        US 5      _S[        R                  5       _SS_$ s  snf s  snf s  snf )Nidtitlenametrackdescriptiontrack_numbernumberurlhttps://www.musicdex.org/%sdurationgenres
like_countlikes_count
view_countplaysartistsalbum_artists	thumbnailimagealbumrelease_yearc                 D    [        [        U S   5      5      R                  $ Nrelease_dater   r   yearxs    S/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/musicdex.py<lambda>-MusicdexBaseIE._return_info.<locals>.<lambda>   s    -XYZhXiHj:k:p:p    extractor_key	extractorMusicdexSong)strgetr   r   MusicdexSongIEie_key)self
track_json
album_jsonvideo_idgenreartists         r)   _return_infoMusicdexBaseIE._return_info   s   
#h-
Z^^F+
 Z^^F+
 :>>-8	

 JNN84
 <
E3PQ
 
z2
 jnnX6N6TRT6TU6TUyy(6TU
 *..7
 *..1
 	9R9XVX9XY9Xv

6*9XY
 z~~i?X?^\^?^_?^Vjj0?^_
 j';XY
 Z^^F+
 GJ0pq
  ^224!
" #
 	
 V Z_s   F1F+F N)__name__
__module____qualname____firstlineno__r:   __static_attributes__r<   r,   r)   r
   r
   
   s    
r,   r
   c                   V    \ rS rSrSrSSSSSSSS	S
/\\S/S/SSSS.SS0S./rS rSrg)r2   !   z2https?://(?:www\.)?musicdex\.org/track/(?P<id>\d+)z1https://www.musicdex.org/track/306/dual-existence306mp3zdual existencez#NIPPONSEI @ IRC.RIZON.NETr   i AnimefripSidezShttps://www.musicdex.org/storage/album/9iDIam1DHTVqUG4UclFIEq1WAFGXfPW4y0TtZa91.pngz6To Aru Kagaku no Railgun T OP2 Single - dual existencei  )r   extr   r   r   r   r   r   r   r   r   r   r   r    r!   skip_downloadT)r   	info_dictparamsc                     U R                  U5      nU R                  SU S3U5      S   nU R                  X3R                  S5      =(       d    0 U5      $ )Nz'https://www.musicdex.org/secure/tracks/?defaultRelations=truer   r    )	_match_id_download_jsonr:   r1   )r4   r   r7   	data_jsons       r)   _real_extractMusicdexSongIE._real_extract:   s[    >>#&''5hZ?UVX`bbik	  MM',B,Hb(SSr,   r<   N	r=   r>   r?   r@   
_VALID_URLint_TESTSrQ   rA   r<   r,   r)   r2   r2   !   sa    FJ C%7%i"|(\nM 
" #D)' F,Tr,   r2   c            
       @    \ rS rSrSrSSSS/\S/SS	S
S.S./rS rSrg)MusicdexAlbumIEA   z2https?://(?:www\.)?musicdex\.org/album/(?P<id>\d+)zzhttps://www.musicdex.org/album/56/tenmon-and-eiichiro-yanagi-minori/ef-a-tale-of-memories-original-soundtrack-2-fortissimo   56OSTz!TENMON & Eiichiro Yanagi / minoriz:ef - a tale of memories Original Soundtrack 2 ~fortissimo~i  zShttps://www.musicdex.org/storage/album/2rSHkyYBYfB7sbvElpEyTMcUn6toY7AohOgJuDlE.jpg)r   r   r   r   r   r!   r   r   playlist_mincountrJ   c                    U R                  U5      nU R                  SU S3U5      S   nUR                  S5      =(       d    /  Vs/ s H/  oDR                  S5      (       d  M  U R                  XCUS   5      PM1     nnSUUR                  S5      UR                  S5      UR                  S	5      =(       d    /  Vs/ s H  ofR                  S5      PM     snUR                  S
5      UR                  S5      =(       d    /  Vs/ s H  owR                  S5      PM     sn[	        USS5      [        US 5      US.
$ s  snf s  snf s  snf )Nz'https://www.musicdex.org/secure/albums/rM   r    tracksr   playlistr   r   r   r   r   r   r   c                 D    [        [        U S   5      5      R                  $ r#   r%   r'   s    r)   r*   /MusicdexAlbumIE._real_extract.<locals>.<lambda>b   s    WXYgWhGi9j9o9or,   )
_typer   r   r   r   r   r   r   r!   entries)rN   rO   r1   r:   r   r   )r4   r   playlist_idrP   r   re   r8   r9   s           r)   rQ   MusicdexAlbumIE._real_extractR   sE   nnS)''5k]BXY[fhhoq	 !*h 7 =2 =R =u4 D4$$UuT{C = 	 R  ]]6*$==76?mmH6M6SQS6ST6SUyy(6ST#--09By9Q9WUW9WX9Wv

6*9WX%i:WX#I/op
 	
R UXs   D=$D==EEr<   NrS   r<   r,   r)   rX   rX   A   s@    FJ Lg;<Q n
 F
r,   rX   c                       \ rS rSrS rSrg)MusicdexPageIEg   c              #      #    U R                   U-  nU(       aQ  U R                  X!5      S   nUR                  S5      =(       d    /  S h  vN   UR                  S5      nU(       a  MP  g g  N 7f)N
paginationdatanext_page_url)_API_URLrO   r1   )r4   rf   rn   rP   s       r)   _entriesMusicdexPageIE._entriesh   sZ     3++MGUI }}V,222%MM/:M m2s   AA-
A+A-)A-r<   N)r=   r>   r?   r@   rp   rA   r<   r,   r)   ri   ri   g   s    ;r,   ri   c                   :    \ rS rSrSrSrSSS\SSS	.S
./rS rSr	g)MusicdexArtistIEp   z3https?://(?:www\.)?musicdex\.org/artist/(?P<id>\d+)z8https://www.musicdex.org/secure/artists/%s/albums?page=1z+https://www.musicdex.org/artist/11/fripsiderZ   11rG   zThttps://www.musicdex.org/storage/artist/ZmOz0lN2vsweegB660em3xWffCjLPmTQHqJls5Xx.jpg)r   r   r   r   r]   c           	      X  ^ ^ T R                  U5      nT R                  SU 3U5      S   n/ nT R                  U5       H7  mUR                  UU 4S jTR	                  S5      =(       d    /  5       5        M9     SUUR	                  S5      UR	                  S5      [        USS	5      US
.$ )Nz(https://www.musicdex.org/secure/artists/r9   c              3   ~   >#    U  H2  oR                  S 5      (       d  M  TR                  UTUS    5      v   M4     g7f)r   N)r1   r:   ).0r   r    r4   s     r)   	<genexpr>1MusicdexArtistIE._real_extract.<locals>.<genexpr>   sC       CUnEr{r{  }A  sBG4,,UE5;GGUns   ==r`   ra   r   r   image_smallr   )rd   r   r   r   r   re   )rN   rO   rp   extendr1   r   )r4   r   rf   rP   re   r    s   `    @r)   rQ   MusicdexArtistIE._real_extract   s    nnS)''*RS^R_(`bmnowx	]];/ENN  CUZU^U^_gUhUnlnUn  C  C 0  ]]6*#--0%i@]^
 	
r,   r<   N
r=   r>   r?   r@   rT   ro   rU   rV   rQ   rA   r<   r,   r)   rs   rs   p   s6    GJIH =o	
	 	F
r,   rs   c                   <    \ rS rSrSrSrSSS\SSS	S
.S./rS rSr	g)MusicdexPlaylistIE   z5https?://(?:www\.)?musicdex\.org/playlist/(?P<id>\d+)zHhttps://www.musicdex.org/secure/playlists/%s/tracks?perPage=10000&page=1z(https://www.musicdex.org/playlist/9/testI   9TestzShttps://www.musicdex.org/storage/album/jXATI79f0IbQ2sgsKYOYRCW3zRwF3XsfHhzITCuJ.jpgz$Test 123 123 21312 32121321321321312)r   r   r   r   r   r]   c           
         U R                  U5      nU R                  SU 3U5      S   nU R                  U5      =(       d    /  Vs/ s HG  oDR                  S5      (       d  M  U R	                  XDR                  S5      =(       d    0 US   5      PMI     nnSUUR                  S5      UR                  S5      UR                  S5      [        USS	5      US
.$ s  snf )Nz*https://www.musicdex.org/secure/playlists/ra   r   r    r   r   r   r   r   )rd   r   r   r   r   r   re   )rN   rO   rp   r1   r:   r   )r4   r   rf   rP   r   re   s         r)   rQ    MusicdexPlaylistIE._real_extract   s    nnS)''*TU`Ta(bdopq{|	 $k : @b @U @uIIdO S4$$UIIg,>,D"eDkR @ 	 U  ]]6*$==7#--0%i:WX
 	
Us   C#1Cr<   Nr~   r<   r,   r)   r   r      s9    IJYH :nA

 
F
r,   r   N)commonr   utilsr   r   r   r   r
   r2   rX   ri   rs   r   r<   r,   r)   <module>r      s_    ! 
] 
.T^ T@#
n #
L;^ ;
~ 
@
 
r,   