U
    g                     @   sP   d dl mZ ddlmZmZmZmZmZmZ G dd deZ	G dd deZ
dS )	   )InfoExtractor   )int_or_nonestr_or_nonetry_getunified_timestampupdate_url_queryurljoinc                	   @   s>   e Zd ZdZdZddddddd	d
dddddZdd ZdS )CPACIEZcpaczchttps?://(?:www\.)?cpac\.ca/(?P<fr>l-)?episode\?id=(?P<id>[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12})zChttps://www.cpac.ca/episode?id=fc7edcae-4660-47e1-ba61-5b7f29a9db0fZ e46ad699caafd7aa6024279f2614e8faz$fc7edcae-4660-47e1-ba61-5b7f29a9db0fmp4Z20220215uI   News Conference to Celebrate National Kindness Week – February 15, 2022z$md5:466a206abd21f3a6f776cdef290c23fbiP3b)idextZupload_datetitledescription	timestampZ	bestvideoT)formatZhls_prefer_native)urlmd5	info_dictparamsc                 C   s@  |  |}d|krdnd}| d| |}t|dd t}g }|r|d }t|d d	| d
 }| j||ddd}|D ]6}|d}	|	|krd|d< qx|	sd|d< qxd|d< qxt|d d| d
 }
dd }|||t|d d| d
t|d d|
r
|
gnd t|t|d d| d||d ddS )Nz/l-episode?frenzohttps://www.cpac.ca/api/1/services/contentModel.json?url=/site/website/episode/index.xml&crafterSite=cpacca&id=c                 S   s   | d d d S )NpagedetailsZvideoUrl xr   r   9/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/cpac.py<lambda>(       z&CPACIE._real_extract.<locals>.<lambda>r   r   title__tZhlsr   )Zm3u8_idr   language
   Zlanguage_preferenceiZ	category_c                 S   s   | d k	r| dkS d S )NZliver   )Zv_typer   r   r   is_live:   s    z%CPACIE._real_extract.<locals>.is_livedescription_ZliveDateTimeZimage__stype)r   formatsr   r   r   
categoriesZ	thumbnailr%   )		_match_id_download_jsonr   strr   Z_extract_m3u8_formatsgetr   r	   )selfr   video_idurl_langcontentZ	video_urlr)   r   fmtZfmt_langcategoryr%   r   r   r   _real_extract!   s<    




zCPACIE._real_extractN)__name__
__module____qualname__IE_NAME
_VALID_URLZ_TESTr5   r   r   r   r   r
      s    	r
   c                   @   sb   e Zd ZdZdZddddddd	d
ddddd	dddddd	ddddddgZdd ZdS )CPACPlaylistIEzcpac:playlistz(?i)https?://(?:www\.)?cpac\.ca/(?:program|search|(?P<fr>emission|rechercher))\?(?:[^&]+&)*?(?P<id>(?:id=\d+|programId=\d+|key=[^&]+))z https://www.cpac.ca/program?id=6zid=6zHeadline Politicsud   Watch CPAC’s signature long-form coverage of the day’s pressing political events as they unfold.)r   r   r   r#   )r   r   Zplaylist_countz9https://www.cpac.ca/search?key=hudson&type=all&order=descz
key=hudsonZhudson)r   r      z'https://www.cpac.ca/search?programId=50zprogramId=50Z50	   z!https://www.cpac.ca/emission?id=6T)r   Zonly_matchingz=https://www.cpac.ca/rechercher?key=hudson&type=all&order=descc              	      sV   }tfdddD r$dndtfdddD rBdnd	\} d
| d| }||}g }tt| fdddd}td|d D ]v}|dkrt|d|i}j||d| dd}t| fddtpg D ]*}	tt|	fdd}
|
r|	|
 qqj
fdd|D |t|fddp@|dd t|fdddS )Nc                 3   s   | ]}| kV  qd S Nr   .0r   r   r   r   	<genexpr>m   s     z/CPACPlaylistIE._real_extract.<locals>.<genexpr>)
/emission?z/rechercher?r   r   c                 3   s   | ]}| kV  qd S r>   r   r?   rA   r   r   rB   n   s     )z	/program?rC   )programZitemList)searchZsearchResultzGhttps://www.cpac.ca/api/1/services/contentModel.json?url=/site/website/z/index.xml&crafterSite=cpacca&c                    s   | d   d S )Nr   Z
totalPagesr   r   	list_typer   r   r   s   r   z.CPACPlaylistIE._real_extract.<locals>.<lambda>r   )defaultr   zDownloading continuation - F)Znotefatalc                    s   | d   d S )Nr   itemr   r   rF   r   r   r   |   r   c                    s   | d  d S )NZurl_r'   r   r   r1   r   r   r   }   r   c                 3   s   | ]}  |V  qd S r>   )Z
url_result)r@   entry)r/   r   r   rB      s     c                    s   | d d d  d S )Nr   rD   r    r!   r   r   rK   r   r   r      r   =r$   c                    s   | d d d  d S )Nr   rD   r&   r!   r   r   rK   r   r   r      r   )Zplaylist_idZplaylist_titleZplaylist_description)r+   anyr,   r   r   ranger   listr	   appendZplaylist_resultsplit)r/   r   r0   Zpl_typeZapi_urlr2   entriesZtotal_pagesr   rJ   Zepisode_urlr   )rG   r/   r   r1   r   r5   k   s6    
"  zCPACPlaylistIE._real_extractN)r6   r7   r8   r9   r:   Z_TESTSr5   r   r   r   r   r;   I   s:   	r;   N)commonr   utilsr   r   r   r   r   r	   r
   r;   r   r   r   r   <module>   s    
=