Ë
    š„j  ã                   ój   — d dl Z d dlZd dlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZmZ  G d„ d	e«      Zy)
é    Né   )ÚInfoExtractor)ÚNineCNineMediaIEé   )Úextract_attributesÚ
orderedSet)Úfind_elementÚtraverse_objc                   ó¶  — e Zd ZdZdZdZe› de› �e› de› �e› de› �e› de› d�e› d	e› �gZd
dddddddg ddg dddddœdœdddddddd dg dg d!d"d#d$d%œdœd&d'd(id)d*œd+d'd,id-d*œd.d'd/id0d*œd1d2d3dd4d5d6d7d8g g d9d:d;d<d=d>œdœd?d@dAdg dBddCd;dDdEdFdGdg dHdIœdœdJdKi d'dL“dMd“dNdO“dPdQ“dRdS“dTdU“dVdW“dXdY“dZd[“d\d"“d]d^“d_d;“d`g “dag “dbdW“dcdd“dœdedfdgœdhdfdgœdidfdgœgZdj„ Zdk„ Z	yl)mÚ	CTVNewsIEz!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X9´xE@iÔü7g)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.2876780éd   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‡Ug²�ï§Æc_@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   gþÔxé&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   — | j                  d|› �t        |«      S )Nz9c9media:ctvnews_web:)Ú
url_resultr   )ÚselfÚclip_ids     úO/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/ctvnews.pyÚ_ninecninemedia_url_resultz$CTVNewsIE._ninecninemedia_url_result—   s   € Ø�‰Ð!6°w°iÐ@ÔBRÐT[Ó\Ð\ó    c           
      ó|  — | j                  |«      }t        j                  | j                  t        j
                  j                  |«      j                  «      x}r|j                  d«      }t        j                  | j                  |«      r| j                  |«      S | j                  d|› �|dddœ¬«      }t        t        j                  d|«      «      D �cg c]  }| j                  |«      ‘Œ }}|s©| j                  ||«      }d|v r?| j                  d	|d
«      j                  d«      D �cg c]  }| j                  |«      ‘Œ }}nTt        |t!        dd¬«      ht"        hdt$        j&                  hddt(        hf«      D �cg c]  }| j                  |«      ‘Œ }}| j+                  ||«      S c c}w c c}w c c}w )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ÚgrouprA   Ú_download_webpager   ÚfindallÚ_search_regexÚsplitr
   r	   r   ÚjsonÚloadsÚstrÚplaylist_result)r>   r    Úpage_idÚmobjÚwebpager?   Úentriess          r@   Ú_real_extractzCTVNewsIE._real_extractš   sÂ  € Ø—.‘. Ó%ˆä—<‘< × 1Ñ 1´6·<±<×3HÑ3HÈÓ3M×3VÑ3VÓWÐWˆ4ÐWØ—j‘j Ó&ˆGä�<‰<˜×)Ñ)¨7Ô3Ø×2Ñ2°7Ó;Ð;à×(Ñ(Ð+BÀ7À)Ð)LÈgØ-Ø&ñ^
Ð(ó ˆô
 #-¬R¯Z©ZÐ8PÐRYÓ-ZÓ"[ö]Øð ×2Ñ2°7Õ;ð ]ˆð ]áØ×,Ñ,¨S°'Ó:ˆGØ  GÑ+à×-Ñ-Ð.KÈWÐV`Óa×gÑgÐhkÓlönÈ˜4×:Ñ:¸7ÕCð n�ñ nô
 ! Ü%Ð*CÈ$ÔOÐPÜ+Ð,¨j¼4¿:¹:¸,ÈÈXÔX[ÐW\ð+^ó _öØAH�D×3Ñ3°GÕ<ð�ð ð ×#Ñ# G¨WÓ5Ð5ùò]ùò
nùòs   ÃF/Ä.F4ÆF9N)
Ú__name__Ú
__module__Ú__qualname__Ú_BASE_REGEXrN   Ú_PLAYLIST_ID_REÚ
_VALID_URLÚ_TESTSrA   r`   © rB   r@   r   r      sÊ  „ Ø6€KØ$€LØ+€Oàˆ=˜ ˜~Ð.Øˆ=Ð5°l°^Ð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€FòB]ó6rB   r   )rX   rL   Úurllib.parserO   Úcommonr   Úninecninemediar   Úutilsr   r   Úutils.traversalr	   r
   r   rh   rB   r@   ú<module>rn      s(   ðÛ Û 	Û å !Ý ,ß 2ß 8ôk6�õ k6rB   