U
    g                     @   sL   d dl Z ddlmZ ddlmZmZmZ G dd deZG dd	 d	eZdS )
    N   )InfoExtractor   )ExtractorErrordetermine_ext	qualitiesc                   @   sZ   e Zd ZdZdZdZdZddddd	d	d
dddddddddddddgZdd ZdS )TeacherTubeIEFZteachertubezteachertube.com videosz}https?://(?:www\.)?teachertube\.com/(viewVideo\.php\?video_id=|music\.php\?music_id=|video/(?:[\da-z-]+-)?|audio/)(?P<id>\d+)z8http://www.teachertube.com/viewVideo.php?video_id=339997Z f9434ef992fd65936d72999951ee254cZ339997mp4z-Measures of dispersion from a frequency tablezre:https?://.*\.(?:jpg|png))idexttitledescription	thumbnail)urlmd5	info_dictz2http://www.teachertube.com/music.php?music_id=8805Z 01e8352006c65757caf7b961f6050e21Z8805mp3zPER ASPERA AD ASTRAz-RADIJSKA EMISIJA ZRAKOPLOVNE TEHNI?KE ?KOLE P)r
   r   r   r   z>http://www.teachertube.com/video/intro-video-schleicher-297790T)r   Zonly_matchingc                    s  |  |}| ||}| jd|dd d}|rDt| j d| dd| jd|ddd}d	}||rz|d t|   }| d
|d
}|r| }t	dddg t
d|}|t
d| |t
d|  fddt|D }	| j|d dp| d|}
||||
|	dS )Nz1<div\b[^>]+\bclass=["\']msgBox error[^>]+>([^<]+)error)defaultz said: T)expectedr   )fatalz - TeacherTuber   r   Zflvr	   zdata-contenturl="([^"]+)"zvar\s+filePath\s*=\s*"([^"]+)"z#\'file\'\s*:\s*["\']([^"\']+)["\'],c                    s   g | ]}| t |d qS ))r   quality)r   ).0Z	media_urlr    @/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/teachertube.py
<listcomp>F   s   
z/TeacherTubeIE._real_extract.<locals>.<listcomp>r   )r
   r   r   r   formats)Z	_match_id_download_webpageZ_search_regexr   IE_NAMEZ_html_search_metaendswithlenstripr   refindallextendsetZ_og_search_thumbnail)selfr   Zvideo_idwebpager   r   ZTITLE_SUFFIXr   Z
media_urlsr   r   r   r   r   _real_extract-   sN    
  

  zTeacherTubeIE._real_extractN)	__name__
__module____qualname___WORKINGr   IE_DESC
_VALID_URLZ_TESTSr)   r   r   r   r   r      s4   r   c                   @   s8   e Zd ZdZdZdZdZdZdddid	d
Zdd Z	dS )TeacherTubeUserIEFzteachertube:user:collectionz*teachertube.com user and collection videoszVhttps?://(?:www\.)?teachertube\.com/(user/profile|collection)/(?P<user>[0-9a-zA-Z]+)/?z(?sx)
        class="?sidebar_thumb_time"?>[0-9:]+</div>
        \s*
        <a\s+href="(https?://(?:www\.)?teachertube\.com/(?:video|audio)/[^"]+)"
    z2http://www.teachertube.com/user/profile/rbhagwati2r
   Z
rbhagwati2   )r   r   Zplaylist_mincountc              
      s     |}|d}g } ||}|t j| td| d|d d }|D ]J}d| d| } ||d| dt| }t j|}	||	 qX fd	d
|D }
 |
|S )Nuserz/ajax-user/user-videos/z\?page=([0-9]+)z1http://www.teachertube.com/ajax-user/user-videos/z?page=zDownloading page /c                    s   g | ]}  |d qS )ZTeacherTube)Z
url_result)r   Zvurlr'   r   r   r   }   s     z3TeacherTubeUserIE._real_extract.<locals>.<listcomp>)	Z_match_valid_urlgroupr   r%   r#   r$   	_MEDIA_REr!   Zplaylist_result)r'   r   ZmobjZuser_idurlsr(   ZpagespZmoreZ
video_urlsentriesr   r5   r   r)   n   s    

zTeacherTubeUserIE._real_extractN)
r*   r+   r,   r-   r   r.   r/   r7   Z_TESTr)   r   r   r   r   r0   Z   s    r0   )	r#   commonr   utilsr   r   r   r   r0   r   r   r   r   <module>   s   O