
    V|h                     n    S SK r SSKJr  SSKJrJrJr   " S S\5      r " S S	\5      r " S
 S\5      r	g)    N   )InfoExtractor   )ExtractorErrordecode_packed_codesurlencode_postdatac                   "    \ rS rSrSrSrS rSrg)
SCTEBaseIE   z&https://www.scte.org/SCTE/Sign_In.aspxsctec                    U R                  U R                  S S5      nS nU" U5      (       a  g U R                  U5      nUR                  UUSS.5        U R                  U R                  S S[	        U5      S9nSU;  a?  U" U5      (       d1  U R                  SUS	S S
9nU(       a  [        SU 3SS9e[        S5      eg g )NzDownloading login popupc                 .   ^  [        U 4S jS 5       5      $ )Nc              3   R   >#    U  H  n[         R                  " UT5      v   M     g 7f)N)research).0pwebpages     O/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/scte.py	<genexpr>?SCTEBaseIE._perform_login.<locals>.is_logged.<locals>.<genexpr>   s'      9 78ryyG,, 78s   $')zclass=["\']welcome\bz
>Sign Out<)any)r   s   `r   	is_logged,SCTEBaseIE._perform_login.<locals>.is_logged   s     9 78 9 9 9    on)zfctl01$TemplateBody$WebPartManager1$gwpciNewContactSignInCommon$ciNewContactSignInCommon$signInUserNamezfctl01$TemplateBody$WebPartManager1$gwpciNewContactSignInCommon$ciNewContactSignInCommon$signInPasswordzbctl01$TemplateBody$WebPartManager1$gwpciNewContactSignInCommon$ciNewContactSignInCommon$RememberMez
Logging in)dataz|pageRedirect|z/(?s)<[^>]+class=["\']AsiError["\'][^>]*>(.+?)</zerror messagedefaultzUnable to login: T)expectedzUnable to log in)_download_webpage
_LOGIN_URL_hidden_inputsupdater   _html_search_regexr   )selfusernamepasswordlogin_popupr   
login_formresponseerrors           r   _perform_loginSCTEBaseIE._perform_login   s    ,,OOT#<>	9
 [!!((5
v~v~rv
 	 ))OOT<#J/ * 1 8+Ih4G4G++B/4 , 9E $'8%@4PP !344 5H+r    N)__name__
__module____qualname____firstlineno__r"   _NETRC_MACHINEr-   __static_attributes__r/   r   r   r
   r
      s    9JN5r   r
   c                   8    \ rS rSrSrSrSSSS.SS	S
./rS rSrg)SCTEIE0   FzDhttps?://learning\.scte\.org/mod/scorm/view\.php?.*?\bid=(?P<id>\d+)z5https://learning.scte.org/mod/scorm/view.php?id=31484z/Introduction to DOCSIS Engineering Professional31484)titleid   zRequires account credentials)url	info_dictplaylist_countskipc                 Z   U R                  U5      nU R                  X5      nU R                  SUS5      nU R                  SX25      nSU S3n[        U R                  U S3U5      5      nU R	                  U R                  SUS5      R                  S	S
5      U5      n/ n	UR                  S5       He  n
U
R                  S5      nU(       a  UR                  S5      (       d  M3  U R                  SUSS S9nU(       d  MN  U	R                  UUXk-   S.5        Mg     U R                  XU5      $ )N<h1>(.+?)</h1>r:   zcontext-(\d+)z)https://learning.scte.org/pluginfile.php/z/mod_scorm/content/8/zmobile/data.jszCreateData\(\s*"(.+?)"r   z\''z.//assetr=   z.mp4zvideo_([^_]+)_zasset idr   )r;   r:   r=   )	_match_idr!   _search_regexr   
_parse_xmlreplacefindallgetendswithappendplaylist_result)r&   r=   video_idr   r:   
context_idcontent_basecontextr   entriesasset	asset_urlasset_ids                r   _real_extractSCTEIE._real_extract=   sC   >>#&((7""#4gwG''(8'L
B:,Ncd%d&<&<nN+X'7 8 )7F<<CGE3<O
 \\*-E		%(II$6$6v$>$>))!9j$ * HHNN#/  . ##Gu==r   r/   N	r0   r1   r2   r3   _WORKING
_VALID_URL_TESTSrU   r5   r/   r   r   r7   r7   0   s3    HXJFF
 . F >r   r7   c                   >    \ rS rSrSrSrSSS.SSS.SSS./rS	 rS
rg)SCTECourseIE`   FzMhttps?://learning\.scte\.org/(?:mod/sub)?course/view\.php?.*?\bid=(?P<id>\d+)z9https://learning.scte.org/mod/subcourse/view.php?id=31491T)r=   only_matchingz1https://learning.scte.org/course/view.php?id=3639z1https://learning.scte.org/course/view.php?id=3073c                    U R                  U5      nU R                  X5      nU R                  SUSS S9n/ n[        R                  " SU5       Hv  nUR                  S5      nXq:X  a  M  UR                  S5      S:X  a  [        R                  5       O[        R                  5       nUR                  U R                  XxS95        Mx     U R                  XRU5      $ )	NrB   r:   r   aF  (?x)
                    <a[^>]+
                        href=(["\'])
                        (?P<url>
                            https?://learning\.scte\.org/mod/
                            (?P<kind>scorm|subcourse)/view\.php?(?:(?!\1).)*?
                            \bid=\d+
                        )
                    r=   kindscorm)ie)rD   r!   rE   r   finditergroupr7   ie_keyr\   rK   
url_resultrL   )	r&   r=   	course_idr   r:   rQ   mobjitem_urlrb   s	            r   rU   SCTECourseIE._real_extractn   s    NN3'	((8""w # ? KK 
D zz%(H%)ZZ%77%B&--/#**, NN4??8?;<!
$ ##G>>r   r/   NrW   r/   r   r   r\   r\   `   s?    HaJJ C C	F?r   r\   )
r   commonr   utilsr   r   r   r
   r7   r\   r/   r   r   <module>rm      s;    	 ! "5 "5J->Z ->`)?: )?r   