U
    $Pf                     @   s   d dl mZ d dlZddlmZ 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 )    )unicode_literalsN   )InfoExtractor   )
compat_str)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   A/tmp/pip-unpacked-wheel-7zdooeg3/youtube_dl/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)r   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_initialize?   s    zPalcoMP3BaseIE._real_initializec                 C   s>   t | j| \}}| j| }| ||d d }| |S )Nartistr   )rematch
_VALID_URLgroupsr!   r   r    )r   r   r   Z
music_slugr   r   r   r   r   _real_extractB   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t| |S NF)PalcoMP3VideoIEsuitablesuperr-   clsr   	__class__r   r   r3   X   s    zPalcoMP3IE.suitable)
r*   r+   r,   IE_NAMEr'   int_TESTSclassmethodr3   __classcell__r   r   r7   r   r-   I   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   r0   Zplaylist_mincountzEartistID
    musics {
      nodes {
        %s
      }
    }
    namec                    s"   t tj|rdS tt| |S r1   )r%   r&   r-   r'   r4   r>   r3   r5   r7   r   r   r3   p   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>y       zAPalcoMP3ArtistIE._real_extract.<locals>.entries.<locals>.<lambda>)r	   listr    )r   r$   r   r   r   entriesx   s    z/PalcoMP3ArtistIE._real_extract.<locals>.entriesZartistIDname)Z	_match_idr   r!   Zplaylist_resultr   r   )r   r   r   rE   r   rD   r   r)   t   s    
  zPalcoMP3ArtistIE._real_extract)r*   r+   r,   r9   r'   r;   r!   r<   r3   r)   r=   r   r   r7   r   r>   ]   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 )r2   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_ier0   	youtubeIDc                 C   s   |d }|  |d|S )NrI   rG   )Z
url_result)r   r   Z
youtube_idr   r   r   r       s    zPalcoMP3VideoIE._parse_musicN)r*   r+   r,   r9   r'   r;   r"   r    r   r   r   r   r2      s   r2   )
__future__r   r%   commonr   compatr   utilsr   r   r	   r
   r-   r>   r2   r   r   r   r   <module>   s   :#