
    V|h                     j    S SK r S SKrS SKrSSKJr  SSKJr  SSKJ	r	J
r
  SSKJrJr   " S S	\5      rg)
    N   )InfoExtractor)NineCNineMediaIE   )extract_attributes
orderedSet)find_elementtraverse_objc                      \ rS rSrSrSrSr\ S\ 3\ S\ 3\ S\ 3\ S\ S	3\ S
\ 3/rSSSSSSSS/ SS/ SSSSS.S.SSSSSSS S!S/ S/ S"S#S$S%S&.S.S'S(S)0S*S+.S,S(S-0S.S+.S/S(S00S1S+.S2S3S4SS5S6S7S8S9/ / S:S;S<S=S>S?.S.S@SASBS/ SCSSDS<SESFSGSHS/ SISJ.S.SKSL0 S(SM_SNS_SOSP_SQSR_SSST_SUSV_SWSX_SYSZ_S[S\_S]S#_S^S__S`S<_Sa/ _Sb/ _ScSX_SdSe_S.SfSgSh.SiSgSh.SjSgSh./rSk r	Sl r
Smrgn)o	CTVNewsIE   z!https?://(?:[^.]+\.)?ctvnews\.ca/z(?P<id>\d{5,})z(?P<id>\d\.\d{5,})zvideo/czvideo(?:-gallery)?/?\?clipId=zvideo/?\?(?:playlist|bin)Id=z(?!video/)[^?#]*?z/?(?:$|[?#])z(?!video/)[^?#]+\?binId=z)http://www.ctvnews.ca/video?clipId=901995 b608f466c7fa24b9666c6439d766ab7e901995flvz1Extended: 'That person cannot be me' Johnson saysz$md5:958dd3b4f5bbbf0ed4d045c790d89285iuW20160630r   zSeason 0z'CTV News National | Archive | Stories 257981zre:https?://.*\.jpg$g5^I@)idexttitledescription	timestampupload_date
categoriesseason_numberseasontagsseries	season_id	thumbnailduration)urlmd5	info_dictz\https://barrie.ctvnews.ca/video/c3030933-here_s-what_s-making-news-for-nov--15?binId=1272429 8b8c2b33c5c1803e3c26bc74ff8694d53030933u)   Here’s what’s making news for Nov. 15uJ   Here are the top stories we’re working on for CTV News at 11 for Nov. 15zhhttp://images2.9c9media.com/image_asset/2021_2_22_a602e68e-1514-410e-a67a-e1f7cccbacab_png_2000x1125.jpg58104zCTV News Barrie20241116gbX9xE@i7g)r   r   r   r   r   r   r   r   r   r   r   r   r    r   z0http://www.ctvnews.ca/video?playlistId=1.2966224r   z	1.2966224   )r!   r#   playlist_mincountz+http://www.ctvnews.ca/video?binId=1.2876780z	1.2876780d   zlhttps://www.ctvnews.ca/it-s-been-23-years-since-toronto-called-in-the-army-after-a-major-snowstorm-1.5736957z	1.5736957   z~https://www.ctvnews.ca/business/respondents-to-bank-of-canada-questionnaire-largely-oppose-creating-a-digital-loonie-1.6665797 24bc4b88cdc17d8c3fc01dfc228ab72c269502689852zFrom CTV News Channelz$md5:796a985a23cacc7e1e2fafefd94afd0a2023z1Bank of Canada asks public about digital currency20230526i  zhhttp://images2.9c9media.com/image_asset/2019_3_28_35f5afc3-10f6-4d92-b194-8b9a86f55c6a_png_1920x1080.jpgipdgV-o@)r   r   r   r   r   r   r   r   r   r   r   r   r   r    z3https://stox.ctvnews.ca/video-gallery?clipId=582589 135cc592df607d29dddc931f1b756ae2582589iUgc_@zCTV News Stoxz=CTV original footage of the rise and fall of the Berlin Wall.zBerlin Wall6381720150401)r   r   r   r   r   r    r   r   r   r   r   r   r   r   zdhttps://ottawa.ctvnews.ca/features/regional-contact/regional-contact-archive?binId=1.1164587#3023759 a14c0603557decc6531260791c23cc5e3023759r   r   i  r   i#9gr   2024episodezEpisode 125r   zCTV News Ottawa at Sixr    gx&0@episode_number}   r   r   z6CTV News Ottawa at Six for Saturday, November 16, 2024r   r   r   r   r   92667zhttp://www.ctvnews.ca/1.810401T)r!   only_matchingz[http://www.ctvnews.ca/canadiens-send-p-k-subban-to-nashville-in-blockbuster-trade-1.2967231z5http://vancouverisland.ctvnews.ca/video?clipId=761241c                 6    U R                  SU 3[        U5      $ )Nz9c9media:ctvnews_web:)
url_resultr   )selfclip_ids     R/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/ctvnews.py_ninecninemedia_url_result$CTVNewsIE._ninecninemedia_url_result   s    !6wi@BRT[\\    c           
         U R                  U5      n[        R                  " U R                  [        R
                  R                  U5      R                  5      =n(       a  UR                  S5      n[        R                  " U R                  U5      (       a  U R                  U5      $ U R                  SU 3USSS.S9n[        [        R                  " SU5      5       Vs/ s H  nU R                  U5      PM     nnU(       d  U R                  X5      nSU;   aA  U R                  S	US
5      R                  S5       Vs/ s H  oPR                  U5      PM     nnOS[        U[!        SSS91["        1S[$        R&                  1SS[(        145       Vs/ s H  oPR                  U5      PM     nnU R+                  Xb5      $ s  snf s  snf s  snf )Nr   zhttps://www.ctvnews.ca/zexample.AjaxPageLayout.oti@B )otmaxItemsPerPage)queryzclip\.id\s*=\s*(\d+);zgetAuthStates("zgetAuthStates\("([\d+,]+)"zclip ids,zjasper-player-containerT)taghtmlzaxis-ids.axisId)	_match_idre	fullmatch_VIDEO_ID_REurllibparseurlparsefragmentgrouprB   _download_webpager   findall_search_regexsplitr
   r	   r   jsonloadsstrplaylist_result)r?   r!   page_idmobjwebpager@   entriess          rA   _real_extractCTVNewsIE._real_extract   s   ..%<< 1 16<<3H3H3M3V3VWW4Wjj&G<<))733227;;((+B7))Lg-&^
( 
 #-RZZ8PRY-Z"[]"[w 227;"[ 	 ],,S:G G+--.KWV`agghklnl IP::7Cl  n
 !%*C$OP+,j4::,XX[W\+^ __ BI33G<_   ##G55]
ns   "GGG N)__name__
__module____qualname____firstlineno___BASE_REGEXrP   _PLAYLIST_ID_RE
_VALID_URL_TESTSrB   rb   __static_attributes__rd   rD   rA   r   r      s   6K$L+O=~.=5l^D=4_4EF=)/):,G=00ABJ ;1JA#% ? 0
( n1@g D  '%#
( B +	
   = +	
 ! ~ +	
  P1 -AH%! D#
( E1# D%Z"  %
( v1
)
5
 T
 	

 f
 }
 3
 
 c
 :
 M
   D
 "
 B
 .
  !
, 0 m GyFB]6rD   r   )rZ   rN   urllib.parserQ   commonr   ninecninemediar   utilsr   r   utils.traversalr	   r
   r   rd   rD   rA   <module>rs      s(     	  ! , 2 8k6 k6rD   