o
    i                     @   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 )CPACIE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-5b7f29a9db0f e46ad699caafd7aa6024279f2614e8faz$fc7edcae-4660-47e1-ba61-5b7f29a9db0fmp420220215uI   News Conference to Celebrate National Kindness Week – February 15, 2022z$md5:466a206abd21f3a6f776cdef290c23fbiP3b)idextupload_datetitledescription	timestamp	bestvideoT)formathls_prefer_native)urlmd5	info_dictparamsc                 C   s>  |  |}d|v rdnd}| d| |}t|dd t}g }|rX|d }t|d d	| d
 }| j||ddd}|D ]}|d}	|	|krLd|d< q<|	sSd|d< q<d|d< q<t|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detailsvideoUrl xr!   r!   I/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/cpac.py<lambda>(       z&CPACIE._real_extract.<locals>.<lambda>r   r   title__thlsr   )m3u8_idr   language
   language_preferencei	category_c                 S   s   | d ur| dkS d S )Nliver!   )v_typer!   r!   r$   is_live:   s   z%CPACIE._real_extract.<locals>.is_livedescription_liveDateTimeimage__stype)r   formatsr   r   r   
categories	thumbnailr2   )		_match_id_download_jsonr   strr   _extract_m3u8_formatsgetr   r	   )selfr   video_idurl_langcontent	video_urlr8   r   fmtfmt_langcategoryr2   r!   r!   r$   _real_extract!   s<   




zCPACIE._real_extractN)__name__
__module____qualname__IE_NAME
_VALID_URL_TESTrH   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   playlist_countz9https://www.cpac.ca/search?key=hudson&type=all&order=descz
key=hudsonhudson)r   r      z'https://www.cpac.ca/search?programId=50zprogramId=5050	   z!https://www.cpac.ca/emission?id=6T)r   only_matchingz=https://www.cpac.ca/rechercher?key=hudson&type=all&order=descc              	      sT   }tfdddD rdndtfdddD r!dnd	\} d
| d| }||}g }tt| fdddd}td|d D ];}|dkrbt|d|i}j||d| dd}t| fddtpmg D ]}	tt|	fdd}
|
r|	|
 qnqIj
fdd|D |t|fddp|dd t|fdddS )Nc                 3       | ]}| v V  qd S Nr!   .0r#   r   r!   r$   	<genexpr>m       z/CPACPlaylistIE._real_extract.<locals>.<genexpr>)
/emission?z/rechercher?r   r   c                 3   rV   rW   r!   rX   rZ   r!   r$   r[   n   r\   )z	/program?r]   )programitemList)searchsearchResultzGhttps://www.cpac.ca/api/1/services/contentModel.json?url=/site/website/z/index.xml&crafterSite=cpacca&c                       | d   d S )Nr   
totalPagesr!   r"   	list_typer!   r$   r%   s   r&   z.CPACPlaylistIE._real_extract.<locals>.<lambda>r   )defaultr   zDownloading continuation - F)notefatalc                    rb   )Nr   itemr!   r"   rd   r!   r$   r%   |   r&   c                    s   | d  d S )Nurl_r6   r!   r"   rB   r!   r$   r%   }   r&   c                 3   s    | ]}  |V  qd S rW   )
url_result)rY   entry)r@   r!   r$   r[      s    c                       | d d d  d S )Nr   r^   r'   r(   r!   r"   rk   r!   r$   r%          =r.   c                    rn   )Nr   r^   r3   r(   r!   r"   rk   r!   r$   r%      ro   )playlist_idplaylist_titleplaylist_description)r;   anyr<   r   r   ranger   listr	   appendplaylist_resultsplit)r@   r   rA   pl_typeapi_urlrC   entriestotal_pagesr   ri   episode_urlr!   )re   r@   r   rB   r$   rH   k   s8   
"
zCPACPlaylistIE._real_extractN)rI   rJ   rK   rL   rM   _TESTSrH   r!   r!   r!   r$   rO   I   s<    	rO   N)commonr   utilsr   r   r   r   r   r	   r
   rO   r!   r!   r!   r$   <module>   s     
=