
    VGh                     |    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   )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      b/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-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)strgetappendr   )r   musicmusic_idr   r"   hls_urlmp3_files          r   _parse_musiczPalcoMP3BaseIE._parse_music   s    uY'(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_initialize9   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                 P    t         j                  |      rdS t        |   |      S NF)PalcoMP3VideoIEsuitablesuperclsr   	__class__s     r   rE   zPalcoMP3IE.suitableR   s%    '005uP57;KC;PPr   )
r6   r7   r8   IE_NAME
_VALID_URLint_TESTSclassmethodrE   __classcell__rI   s   @r   r;   r;   C   sI    G`Jb1<

 
F Q Q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                 P    t         j                  |      rdS t        |   |      S rC   )r;   r2   rF   rE   rG   s     r   rE   zPalcoMP3ArtistIE.suitablej   s%    "33C8uSeg>Ns>SSr   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>s   s    AhK4H r   )r   listr+   )r'   r1   r   s    r   entriesz/PalcoMP3ArtistIE._real_extract.<locals>.entriesr   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_extractn   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   W   sP    GNJ:&
 ! F T T	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   z   sJ    GhJ A+\A%1*
 F  MBr   rD   N)
commonr   utilsr   r   r   r	   r;   rR   rD   r9   r   r   <module>rt      sJ    ! 7(] 7(tQ Q( P~  PFBn Br   