
    yfG                     h    d dl mZ ddlmZ ddlmZmZmZmZm	Z	m
Z
  G d de      Z G d de      Zy	)
   )InfoExtractor   )
compat_str)int_or_nonestr_or_nonetry_getunified_timestampupdate_url_queryurljoinc            	       <    e Zd ZdZdZddddddd	d
dddddZd Zy)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                    | j                  |      }d|v rdnd}| j                  d|z   |      }t        |d t              }g }|r_|d   }t	        |d   d|d	         }| j                  ||d
d      }|D ]+  }|j                  d      }	|	|k(  rd|d<   |	sd|d<   'd|d<   - t	        |d   d|d	         }
d }||t	        |d   j                  d|d	            t        |d   j                  d            |
r|
gnd t        |t	        |d   j                  d|d                   ||d   j                  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                     | d   d   d   S )NpagedetailsvideoUrl )xs    7/usr/lib/python3/dist-packages/yt_dlp/extractor/cpac.py<lambda>z&CPACIE._real_extract.<locals>.<lambda>)   s    qy/CJ/O     r#   r$   title__thlsr   )m3u8_idr   language
   language_preferencei	category_c                     | | dk(  S d S )Nliver&   )v_types    r(   is_livez%CPACIE._real_extract.<locals>.is_live;   s    )/);Ff$EEr*   description_liveDateTimeimage__stype)r   formatsr   r   r   
categories	thumbnailr7   )		_match_id_download_jsonr   r   r   _extract_m3u8_formatsgetr	   r   )selfr   video_idurl_langcontent	video_urlr=   r   fmtfmt_langcategoryr7   s               r(   _real_extractzCPACIE._real_extract"   s   >>#&(C/4T%%}  AI  I G%OQ[\	foG	 283N OPE00HeY^0_G 577:.x'13C-.!13C-.14C-.5 wy1X2PQR	F &wy'9'='=T\>_'`a*79+=+A+A.+QR(08*d k')2D2H2HYaId2e&fgwy155f=>	
 		
r*   N)__name__
__module____qualname__IE_NAME
_VALID_URL_TESTrL   r&   r*   r(   r   r      sE    GwJ U18%`A#
 "!%
E$%
r*   r   c                   `    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 Zy)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   r0   )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           
           j                        }t        fddD              rdndt        fddD              rdnd\  }d	|d
|} j                  ||      }g }t        t	        |fd      d      }t        d|dz         D ]|  }|dkD  r+t        |dd|fz  i      } j                  ||d|fz  d      }t	        |fdt              xs g D ]/  }	t        t	        |	fd            }
|
s|j                  |
       1 ~  j                   fd|D        |t	        |fd      xs |j                  d      d   t	        |fd            S )Nc              3   &   K   | ]  }|v  
 y wNr&   .0r'   r   s     r(   	<genexpr>z/CPACPlaylistIE._real_extract.<locals>.<genexpr>n   s     PAqCxP   )
/emission?z/rechercher?r    r!   c              3   &   K   | ]  }|v  
 y wr]   r&   r^   s     r(   r`   z/CPACPlaylistIE._real_extract.<locals>.<genexpr>o   s     ;jAH;jra   )z	/program?rb   )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_types    r(   r)   z.CPACPlaylistIE._real_extract.<locals>.<lambda>u   s    QvYy=QR^=_ r*   r   )defaultr#   z%dzDownloading continuation - %dF)notefatalc                     | d      d   S )Nr#   itemr&   rj   s    r(   r)   z.CPACPlaylistIE._real_extract.<locals>.<lambda>~   s    1V9Y3G3O r*   c                     | dd   S )Nurl_r;   r&   r'   rF   s    r(   r)   z.CPACPlaylistIE._real_extract.<locals>.<lambda>   s    1S[E^C_ r*   c              3   @   K   | ]  }j                  |        y wr]   )
url_result)r_   entryrD   s     r(   r`   z/CPACPlaylistIE._real_extract.<locals>.<genexpr>   s     9T__U#9s   c                 "    | d   d   dd   S )Nr#   rd   r+   r,   r&   rs   s    r(   r)   z.CPACPlaylistIE._real_extract.<locals>.<lambda>   s    ai	6J[cKf6g r*   =r2   c                 "    | d   d   dd   S )Nr#   rd   r8   r,   r&   rs   s    r(   r)   z.CPACPlaylistIE._real_extract.<locals>.<lambda>   s    AfIi<PgoQr<s r*   )playlist_idplaylist_titleplaylist_description)r@   anyrA   r   r   ranger
   listr   appendplaylist_resultsplit)rD   r   rE   pl_typeapi_urlrG   entriestotal_pagesr#   rp   episode_urlrk   rF   s   ``         @@r(   rL   zCPACPlaylistIE._real_extractl   s   >>#&P1OPP4VZ8;;jNi;j8j4  qK $ 	 %%gx8!''3_"`jkl![1_- 	0Dax*7VTTH_4OP--X8D8C . !
  )OQUV\Z\ 0%c749_+`aNN;/0	0 ##99 "7,gh  Dltlzlz{~l  AC  mD!(2s!t	 $ 
 	
r*   N)rM   rN   rO   rP   rQ   _TESTSrL   r&   r*   r(   rT   rT   J   s    G [J 2( B

  K
  9 
  3 O3F<
r*   rT   N)commonr   compatr   utilsr   r   r   r	   r
   r   r   rT   r&   r*   r(   <module>r      s.    !  :
] :
z>
] >
r*   