
    yf                     ^    d dl Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZ  G d de      Zy)    N   )InfoExtractor   )

clean_htmlextract_attributesget_element_by_classget_element_html_by_class get_element_text_and_html_by_tagint_or_noneunified_strdatestrip_or_nonetraverse_objtry_callc            	       8    e Zd ZdZddddddddd	d
gZd Zd Zy)MonstercatIEz1https?://www\.monstercat\.com/release/(?P<id>\d+)z/https://www.monstercat.com/release/742779548009   zThe Secret Language of Trees742779548009z5https://www.monstercat.com/release/742779548009/cover20230711BT)titleid	thumbnailrelease_datealbumalbum_artist)urlplaylist_count	info_dictc              #     K   t        j                  d|      D ]  t        t        fd            }t	        t        fd      xs d      }|j                  d      }|j                  d      }t        t        fd            }|r|s?| j                  d| d	       | j                  d
t        |       dt        |              i ||||t        t        fd            d| d| |dd  y w)Nz<tr[^<]*>((?:(?!</tr>)[\w\W])+)c                  @    t        d       j                  d      d   S )Nzd-inline-flex flex-columnz <spanr   r   	partitiontds   =/usr/lib/python3/dist-packages/yt_dlp/extractor/monstercat.py<lambda>z.MonstercatIE._extract_tracks.<locals>.<lambda>$   s"    ,-H"MWWX`abcd     c                      t        d       S )Nz btn-play cursor-pointer mr-small)r	   r#   s   r%   r&   z.MonstercatIE._extract_tracks.<locals>.<lambda>%   s    6OPrtv6w r'    zdata-track-idzdata-release-idc                      t        d       S )Nz	py-xsmallr   r#   s   r%   r&   z.MonstercatIE._extract_tracks.<locals>.<lambda>)   s    8L[Z\8] r'   zSkipping track z, ID(s) not foundzrelease_id=z
 track_id=c                      t        d       S )Nzd-block fs-xxsmallr+   r#   s   r%   r&   z.MonstercatIE._extract_tracks.<locals>.<lambda>3   s    6JK_ac6d r'   z'https://www.monstercat.com/api/release/z/track-stream/mp3)r   tracktrack_numberartistr   r   ext)
refindallr   r   r   getr   report_warningwrite_debugrepr)	selftable
album_metar   idstrack_id
release_idr/   r$   s	           @r%   _extract_trackszMonstercatIE._extract_tracks!   s    **?G 	Bxd f gE$X.w%x%~|~Cww/H!23J&x0]'^_L:##ol^CT$UV  ;tJ/?.@
4PX>JZ![\		 ,$X.d%ef@N[cZde	 		s   C6C9c                 <   | j                  |      }| j                  ||      t        fd      xs d}t        fd      }t        d hdt        ht
        hf      }||d| dt        fd      |d	} | j                  | j                  ||      fd
|i|S )Nc                      t        d       S )Nztable table-smallr+   htmls   r%   r&   z,MonstercatIE._real_extract.<locals>.<lambda>=   s    +?@SUY+Z r'   r)   c                  "    t        d       d   S )Nh1r   )r
   rA   s   r%   r&   z,MonstercatIE._real_extract.<locals>.<lambda>?   s    !A$!Ma!P r'   c                 8    t        d|       j                  d      S )Nz1font-italic mb-medium d-tablet-none d-phone-blockz	Released r!   rA   s    r%   r&   z,MonstercatIE._real_extract.<locals>.<lambda>@   s    1EFy 2""+)K"8 r'   r   z#https://www.monstercat.com/release/z/coverc                      t        d       S )Nz5h-normal text-uppercase mb-desktop-medium mb-smallishr+   rA   s   r%   r&   z,MonstercatIE._real_extract.<locals>.<lambda>H   s    ,-dfjk r'   )r   r   r   r   r   playlist_id)	_match_id_download_webpager   r   r   r   playlist_resultr>   )r8   r   url_idtracklist_tabler   dater:   rB   s          @r%   _real_extractzMonstercatIE._real_extract9   s    $%%c62"#Z[a_aPQD %9 $:;<}oP_O`#b c >vhfM$km 

 $t##  *=aKQaU_a 	ar'   N)__name__
__module____qualname__
_VALID_URL_TESTSr>   rN    r'   r%   r   r      s;    EJ@3 P&3 
 F0ar'   r   )r2   commonr   utilsr   r   r   r	   r
   r   r   r   r   r   r   rT   r'   r%   <module>rW      s(    	 !  ;a= ;ar'   