U
    g                     @   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=1Zsiteidr   vidc                    s.   g | ]&} | d jd t|jd dqS )z./copyZplayurlvalue)	format_idurlquality)findattribint).0r   r    ;/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/bokecc.py
<listcomp>   s
   z8BokeCCBaseIE._extract_bokecc_formats.<locals>.<listcomp>z./video/quality)Z_html_search_regexurllibparseparse_qsZ_download_xmlformatfindall)selfwebpagevideo_idr   Zplayer_params_strZplayer_paramsZ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=FE644790DE9D154AZ1FE644790DE9D154A_E0ABAE9D4F509B189C33DC5901307461ZflvBokeCC Video)idexttitle)r   Z	info_dictc                 C   st   t j| |d}|dr,|ds8t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   Z_match_valid_urlr   getr   r   Z_download_webpager   )r   r   qsr   r   r   r   r   _real_extract'   s    
zBokeCCIE._real_extractN)r   r    r!   Z_IE_DESCZ
_VALID_URLZ_TESTSr,   r   r   r   r   r"      s   	r"   )urllib.parser   commonr   utilsr   r   r"   r   r   r   r   <module>   s   