o
    i                     @   sd   d dl mZ ddlmZmZmZ G dd deZG dd deZG dd	 d	eZG d
d deZ	dS )   )InfoExtractor   )int_or_nonestr_or_nonetry_getc                   @   s8   e Zd ZdZdZdZdd Zdd Zdd	 Zd
d Z	dS )PalcoMP3BaseIEz%{
  artist(slug: "%s") {
    %s
  }
}z#music(slug: "%%s") {
      %s
    }zFduration
      hls
      mp3File
      musicID
      plays
      titlec                 C   s"   | j d|d| j||f idd S )Nz$https://www.palcomp3.com.br/graphql/query)r   data)_download_json_GQL_QUERY_TMPL)selfartist_slugartist_fields r   M/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/palcomp3.py	_call_api   s   zPalcoMP3BaseIE._call_apic                 C   sx   t |d }|d }g }|d}|r||ddd |d}|r*|d|i |||t|d	t|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_filer   r   r   _parse_music   s*   

zPalcoMP3BaseIE._parse_musicc                 C   s   | j | j | _ d S )N)_ARTIST_FIELDS_TMPL_MUSIC_FIELDS)r   r   r   r   _real_initialize9   s   zPalcoMP3BaseIE._real_initializec                 C   s:   |  | \}}| j| }| ||d d }| |S )Nartistr#   )_match_valid_urlgroupsr(   r   r'   )r   r   r   
music_slugr   r#   r   r   r   _real_extract<   s   

zPalcoMP3BaseIE._real_extractN)
__name__
__module____qualname__r   r(   r)   r   r'   r*   r/   r   r   r   r   r   	   s    r   c                       sB   e Zd ZdZdZdddddded	d
gZe fddZ  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                    s   t |rdS t |S NF)PalcoMP3VideoIEsuitablesuperclsr   	__class__r   r   r<   R      zPalcoMP3IE.suitable)
r0   r1   r2   IE_NAME
_VALID_URLint_TESTSclassmethodr<   __classcell__r   r   r@   r   r3   C   s    r3   c                       sH   e Zd ZdZdZddddddgZd	Ze fd
dZdd Z	  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   r9   playlist_mincountzEartistID
    musics {
      nodes {
        %s
      }
    }
    namec                    s   t |rdS t |S r:   )r3   r,   r=   r<   r>   r@   r   r   r<   j   rB   zPalcoMP3ArtistIE.suitablec                    sJ    |}|jd   fdd}| t d dS )Nr+   c                  3   s,    t  dd tp
g D ]} | V  qd S )Nc                 S   s   | d d S )Nmusicsnodesr   )xr   r   r   <lambda>s   s    zAPalcoMP3ArtistIE._real_extract.<locals>.entries.<locals>.<lambda>)r   listr'   )r#   r+   r   r   r   entriesr   s   z/PalcoMP3ArtistIE._real_extract.<locals>.entriesartistIDname)	_match_idr   r(   playlist_resultr   r!   )r   r   r   rS   r   rR   r   r/   n   s   
zPalcoMP3ArtistIE._real_extract)r0   r1   r2   rC   rD   rF   r(   rG   r<   r/   rH   r   r   r@   r   rI   W   s    rI   c                
   @   s@   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d ZdS )r;   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_ier9   	youtubeIDc                 C   s   |d }|  |d|S )Nra   rX   )
url_result)r   r#   
youtube_idr   r   r   r'      s   zPalcoMP3VideoIE._parse_musicN)r0   r1   r2   rC   rD   rF   r)   r'   r   r   r   r   r;   z   s     r;   N)
commonr   utilsr   r   r   r   r3   rI   r;   r   r   r   r   <module>   s    :#