U
    g                     @   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)Z_download_json_GQL_QUERY_TMPL)selfartist_slugartist_fields r   =/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/palcomp3.py	_call_api   s      zPalcoMP3BaseIE._call_apic                 C   sx   t |d }|d }g }|d}|r8||ddd |d}|rT|d|i |||t|d	t|d
dS )NZmusicIDtitleZhlsZm3u8_nativemp4)urlprotocolextZmp3Filer   durationZplays)idr   formatsr   
view_count)strgetappendr   )r   musicZmusic_idr   r   Zhls_urlZ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   Z
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/Z 99fd6405b2d8fd589670f6db1ba3b358Z3162927Z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   s    zPalcoMP3IE.suitable)
r&   r'   r(   IE_NAME
_VALID_URLint_TESTSclassmethodr/   __classcell__r   r   r3   r   r)   C   s   r)   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/Z358396u   Conde do Forró)r   r      )r   r,   Zplaylist_mincountzEartistID
    musics {
      nodes {
        %s
      }
    }
    namec                    s   t |rdS t |S r-   )r)   r#   r0   r/   r1   r3   r   r   r/   j   s    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 )NZmusicsZnodesr   )xr   r   r   <lambda>s       zAPalcoMP3ArtistIE._real_extract.<locals>.entries.<locals>.<lambda>)r   listr   )r   r"   r   r   r   entriesr   s    z/PalcoMP3ArtistIE._real_extract.<locals>.entriesZartistIDname)Z	_match_idr   r   Zplaylist_resultr   r   )r   r   r   rB   r   rA   r   r%   n   s    
  zPalcoMP3ArtistIE._real_extract)r&   r'   r(   r5   r6   r8   r   r9   r/   r%   r:   r   r   r3   r   r;   W   s   r;   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YoutubeZ_pD1nR2qqPgr   uE   Maiara e Maraisa - Você Faz Falta Aqui - DVD Ao Vivo Em Campo Grandez$md5:7043342c09a224598e93546e98e49282Z20161107ZmaiaramaraisaoficialzMaiara e Maraisa)r   r   r   descriptionZupload_dateZuploader_idZuploader)r   Zadd_ier,   	youtubeIDc                 C   s   |d }|  |d|S )NrF   rD   )Z
url_result)r   r   Z
youtube_idr   r   r   r      s    zPalcoMP3VideoIE._parse_musicN)r&   r'   r(   r5   r6   r8   r    r   r   r   r   r   r.   z   s   r.   N)
commonr   utilsr   r   r   r   r)   r;   r.   r   r   r   r   <module>   s
   :#