
    VGh                     n    d dl Z ddlmZ ddlmZmZmZ  G d de      Z G d d	e      Z G d
 de      Z	y)    N   )InfoExtractor   )ExtractorErrordecode_packed_codesurlencode_postdatac                       e Zd ZdZdZd Zy)
SCTEBaseIEz&https://www.scte.org/SCTE/Sign_In.aspxsctec                 p   | j                  | j                  d d      }d } ||      ry | j                  |      }|j                  ||dd       | j                  | j                  d dt	        |            }d|vr; ||      s2| j                  d|d	d 
      }|rt        d| d      t        d      y y )NzDownloading login popupc                 ,     t         fddD              S )Nc              3   J   K   | ]  }t        j                  |        y w)N)research).0pwebpages     ^/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/scte.py	<genexpr>z?SCTEBaseIE._perform_login.<locals>.is_logged.<locals>.<genexpr>   s       9ryyG, 9s    #)zclass=["\']welcome\bz
>Sign Out<)any)r   s   `r   	is_loggedz,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_loginzSCTEBaseIE._perform_login   s    ,,OOT#<>	9
 [!((5
v~v~rv
 	 ))OOT<#J/ * 1 8+Ih4G++B/4 , 9E $'8%@4PP !344 5H+r   N)__name__
__module____qualname__r   _NETRC_MACHINEr*    r   r   r
   r
      s    9JN5r   r
   c                   0    e Zd ZdZdZddddddd	gZd
 Zy)SCTEIEFzDhttps?://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                 B   | j                  |      }| j                  ||      }| j                  d|d      }| j                  d||      }d| d}t        | j                  | d|            }| j	                  | j                  d|d      j                  d	d
      |      }g }	|j                  d      D ]W  }
|
j                  d      }|r|j                  d      s(| j                  d|dd       }|s@|	j                  ||||z   d       Y | j                  |	||      S )N<h1>(.+?)</h1>r3   zcontext-(\d+)z)https://learning.scte.org/pluginfile.php/z/mod_scorm/content/8/zmobile/data.jszCreateData\(\s*"(.+?)"r   z\''z.//assetr6   z.mp4zvideo_([^_]+)_zasset idr   )r4   r3   r6   )	_match_idr   _search_regexr   
_parse_xmlreplacefindallgetendswithappendplaylist_result)r#   r6   video_idr   r3   
context_idcontent_basecontextr   entriesasset	asset_urlasset_ids                r   _real_extractzSCTEIE._real_extract=   sM   >>#&((h7""#4gwG''(8'8L
B:,Ncd%d&<&<nN+X'7 8 )7F<<CGE3<O
 \\*- 	E		%(II$6$6v$>))!9j$ * HHNN#i/ 	 ##GXu==r   Nr+   r,   r-   _WORKING
_VALID_URL_TESTSrN   r/   r   r   r1   r1   0   s3    HXJFF
 . F >r   r1   c                   6    e Zd ZdZdZdddddddddgZd Zy	)
SCTECourseIEFzMhttps?://learning\.scte\.org/(?:mod/sub)?course/view\.php?.*?\bid=(?P<id>\d+)z9https://learning.scte.org/mod/subcourse/view.php?id=31491T)r6   only_matchingz1https://learning.scte.org/course/view.php?id=3639z1https://learning.scte.org/course/view.php?id=3073c                    | j                  |      }| j                  ||      }| j                  d|dd       }g }t        j                  d|      D ]w  }|j                  d      }||k(  r|j                  d      dk(  rt        j                         nt        j                         }|j                  | j                  ||             y | j                  |||      S )	Nr;   r3   r   aF  (?x)
                    <a[^>]+
                        href=(["\'])
                        (?P<url>
                            https?://learning\.scte\.org/mod/
                            (?P<kind>scorm|subcourse)/view\.php?(?:(?!\1).)*?
                            \bid=\d+
                        )
                    r6   kindscorm)ie)r=   r   r>   r   finditergroupr1   ie_keyrT   rD   
url_resultrE   )	r#   r6   	course_idr   r3   rJ   mobjitem_urlrY   s	            r   rN   zSCTECourseIE._real_extractn   s    NN3'	((i8""w # ? KK 
 	=D zz%(H3%)ZZ%77%B&--/#**, NN4??8?;<!	=$ ##GY>>r   NrO   r/   r   r   rT   rT   `   s?    HaJJ C C	F?r   rT   )
r   commonr   utilsr   r   r   r
   r1   rT   r/   r   r   <module>rc      s;    	 ! "5 "5J->Z ->`)?: )?r   