o
    i                     @   sD   d dl ZddlmZ ddlmZ G dd deZG dd	 d	eZdS )
    N   )InfoExtractor   )ExtractorErrorc                   @   s   e Zd ZdddZdS )BokeCCBaseIENc                    sZ   | j d|ddd}tj|}| d|d d |d d |} fd	d
|dD S )Nzu<(?:script|embed)[^>]+src=(?P<q>["\'])(?:https?:)?//p\.bokecc\.com/(?:player|flash/player\.swf)\?(?P<query>.+?)(?P=q)zplayer paramsquery)groupz6http://p.bokecc.com/servlet/playinfo?uid={}&vid={}&m=1siteidr   vidc                    s.   g | ]} | d jd t|jd dqS )z./copyplayurlvalue)	format_idurlquality)findattribint).0r   r    K/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/bokecc.py
<listcomp>   s    
z8BokeCCBaseIE._extract_bokecc_formats.<locals>.<listcomp>z./video/quality)_html_search_regexurllibparseparse_qs_download_xmlformatfindall)selfwebpagevideo_idr   player_params_strplayer_paramsinfo_xmlr   r   r   _extract_bokecc_formats   s   
z$BokeCCBaseIE._extract_bokecc_formats)N)__name__
__module____qualname__r%   r   r   r   r   r      s    r   c                   @   s0   e Zd ZdZdZddddddgZd	d
 ZdS )BokeCCIEu   CC视频z8https?://union\.bokecc\.com/playvideo\.bo\?(?P<query>.*)z^http://union.bokecc.com/playvideo.bo?vid=E0ABAE9D4F509B189C33DC5901307461&uid=FE644790DE9D154A1FE644790DE9D154A_E0ABAE9D4F509B189C33DC5901307461flvBokeCC Video)idexttitle)r   	info_dictc                 C   st   t j| |d}|dr|dstdddd|d d |d d }| ||}|d	| 	||d
S )Nr   r
   uidzInvalid URLT)expectedz{}_{}r   r,   )r-   r/   formats)
r   r   r   _match_valid_urlr   getr   r   _download_webpager%   )r   r   qsr!   r    r   r   r   _real_extract'   s   
zBokeCCIE._real_extractN)r&   r'   r(   IE_DESC
_VALID_URL_TESTSr8   r   r   r   r   r)      s    	r)   )urllib.parser   commonr   utilsr   r   r)   r   r   r   r   <module>   s
    