
    yfg                         d dl mZ ddlmZ ddlmZmZmZ  G d de      Z G d de      Z	 G d	 d
e      Z
 G d de      Zy)   )InfoExtractor   )
compat_str)int_or_nonestr_or_nonetry_getc                   0    e Zd ZdZdZdZd Zd Zd Zd Z	y)	PalcoMP3BaseIEz%{
  artist(slug: "%s") {
    %s
  }
}z#music(slug: "%%s") {
      %s
    }zFduration
      hls
      mp3File
      musicID
      plays
      titlec                 R    | j                  d|d| j                  ||fz  i      d   S )Nz$https://www.palcomp3.com.br/graphql/query)r   data)_download_json_GQL_QUERY_TMPL)selfartist_slugartist_fieldss      ;/usr/lib/python3/dist-packages/yt_dlp/extractor/palcomp3.py	_call_apizPalcoMP3BaseIE._call_api   sD    ""2K--m0LLH #   	    c           	      8   t        |d         }|d   }g }|j                  d      }|r|j                  |ddd       |j                  d      }|r|j                  d|i       |||t        |j                  d	            t        |j                  d
            dS )NmusicIDtitlehlsm3u8_nativemp4)urlprotocolextmp3Filer   durationplays)idr   formatsr    
view_count)r   getappendr   )r   musicmusic_idr   r#   hls_urlmp3_files          r   _parse_musiczPalcoMP3BaseIE._parse_music    s    eI./g))E"NN) 
 99Y'NNx 
 #EIIj$9:%eii&89
 	
r   c                 @    | j                   | j                  z  | _         y )N)_ARTIST_FIELDS_TMPL_MUSIC_FIELDS)r   s    r   _real_initializezPalcoMP3BaseIE._real_initialize:   s    #'#;#;d>P>P#P r   c                     | j                  |      j                         \  }}| j                  |z  }| j                  ||      d   d   }| j	                  |      S )Nartistr'   )_match_valid_urlgroupsr-   r   r+   )r   r   r   
music_slugr   r'   s         r   _real_extractzPalcoMP3BaseIE._real_extract=   s[    "&"7"7"<"C"C"EZ00:={M:8DWM  ''r   N)
__name__
__module____qualname__r   r-   r.   r   r+   r/   r5    r   r   r
   r
   
   s-    O
	M
4Q(r   r
   c                   J     e Zd ZdZdZdddddded	d
gZe fd       Z xZ	S )
PalcoMP3IEzPalcoMP3:songzLhttps?://(?:www\.)?palcomp3\.com(?:\.br)?/(?P<artist>[^/]+)/(?P<id>[^/?&#]+)zQhttps://www.palcomp3.com/maiaraemaraisaoficial/nossas-composicoes-cuida-bem-dela/ 99fd6405b2d8fd589670f6db1ba3b3583162927mp3u%   Nossas Composições - CUIDA BEM DELA   )r"   r   r   r    r$   )r   md5	info_dictc                 X    t         j                  |      rdS t        t        |   |      S NF)PalcoMP3VideoIEsuitablesuperr;   clsr   	__class__s     r   rE   zPalcoMP3IE.suitableS   s(    '005u_5S;Z[^;__r   )
r6   r7   r8   IE_NAME
_VALID_URLint_TESTSclassmethodrE   __classcell__rI   s   @r   r;   r;   D   sI    G`Jb1<

 
F ` `r   r;   c                   N     e Zd ZdZdZddddddgZd	Ze fd
       Zd Z	 xZ
S )PalcoMP3ArtistIEzPalcoMP3:artistz:https?://(?:www\.)?palcomp3\.com(?:\.br)?/(?P<id>[^/?&#]+)z)https://www.palcomp3.com.br/condedoforro/358396u   Conde do Forró)r"   r      )r   rA   playlist_mincountzEartistID
    musics {
      nodes {
        %s
      }
    }
    namec                 X    t         j                  |      rdS t        t        |   |      S rC   )r;   r2   rF   rR   rE   rG   s     r   rE   zPalcoMP3ArtistIE.suitablek   s*    "33C8uheDTVY>cdg>hhr   c                       j                  |      } j                  | j                        d    fd} j                   |       t	        j                  d            j                  d            S )Nr1   c               3   j   K   t        d t              xs g D ]  } j                  |         y w)Nc                     | d   d   S )Nmusicsnodesr9   )xs    r   <lambda>zAPalcoMP3ArtistIE._real_extract.<locals>.entries.<locals>.<lambda>t   s    AhK4H r   )r   listr+   )r'   r1   r   s    r   entriesz/PalcoMP3ArtistIE._real_extract.<locals>.entriess   s7     !&*H$OUSU /''../s   03artistIDname)	_match_idr   r-   playlist_resultr   r%   )r   r   r   r_   r1   s   `   @r   r5   zPalcoMP3ArtistIE._real_extracto   sh    nnS)T-E-EFxP	/ ##I{6::j#9:FJJv<NP 	Pr   )r6   r7   r8   rJ   rK   rM   r-   rN   rE   r5   rO   rP   s   @r   rR   rR   X   sP    GNJ:&
 ! F i i	Pr   rR   c            
       >    e Zd ZdZdZddgddddd	d
dddgZdZd Zy)rD   zPalcoMP3:videozThttps?://(?:www\.)?palcomp3\.com(?:\.br)?/(?P<artist>[^/]+)/(?P<id>[^/?&#]+)/?#clipezohttps://www.palcomp3.com/maiaraemaraisaoficial/maiara-e-maraisa-voce-faz-falta-aqui-ao-vivo-em-vicosa-mg/#clipeYoutube_pD1nR2qqPgr   uE   Maiara e Maraisa - Você Faz Falta Aqui - DVD Ao Vivo Em Campo Grandez$md5:7043342c09a224598e93546e98e4928220161107maiaramaraisaoficialzMaiara e Maraisa)r"   r   r   descriptionupload_dateuploader_iduploader)r   add_ierA   	youtubeIDc                 2    |d   }| j                  |d|      S )Nrn   re   )
url_result)r   r'   
youtube_ids      r   r+   zPalcoMP3VideoIE._parse_music   s    ;'
z9jAAr   N)r6   r7   r8   rJ   rK   rM   r.   r+   r9   r   r   rD   rD   {   sJ    GhJ A+\A%1*
 F  MBr   rD   N)commonr   compatr   utilsr   r   r   r
   r;   rR   rD   r9   r   r   <module>ru      sM    !  7(] 7(t` `( P~  PFBn Br   