o
    i4                     @   sX   d dl Z ddlmZ ddlmZmZmZmZmZm	Z	 G dd deZ
G dd	 d	eZdS )
    N   )InfoExtractor   )
clean_htmlint_or_noneparse_codecsparse_duration
str_to_intunified_timestampc                   @   s2   e Zd ZdZdddddddd	d
gZdd ZdS )GabTVIEz;https?://tv\.gab\.com/channel/[^/]+/view/(?P<id>[a-z0-9-]+)zbhttps://tv.gab.com/channel/wurzelroot/view/why-was-america-in-afghanistan-61217eacea5665de450d048861217eacea5665de450d0488mp4zIWHY WAS AMERICA IN AFGHANISTAN - AMERICA FIRST AGAINST AMERICAN OLIGARCHY
Wurzelroot608fb0a85738fd1974984f7dz1https://tv.gab.com/image/61217eacea5665de450d0488)idexttitleuploaderuploader_id	thumbnail)url	info_dictc                 C   s"  |  |dd }| ||}| d|d}| d|d}| d|d}| d	|d
}t| j| d|dddp;d }td| d|}	g }
|	D ]9}d| d| d| |dddd}d|v rtt	|
dd|d< d|d< d|d< n
t	|
dd|d< |
| qJ|||
|||d| d S )!N-z(data-channel-id=\"(?P<channel_id>[^\"]+)
channel_idz*data-channel-name=\"(?P<channel_id>[^\"]+)channel_namez+data-episode-title=\"(?P<channel_id>[^\"]+)r   z&data-view-key=\"(?P<channel_id>[^\"]+)view_keydescriptioncontent)groupz<a\ data-episode-id=\"z,\"\ data-resolution=\"(?P<resolution>[^\"]+)zhttps://tv.gab.com/media/z	?viewKey=z&r=h264aacr   )r   	format_idvcodecacodecr   zaudio- abr   heightiqualitypzhttps://tv.gab.com/image/)r   r   formatsr   r   r   r   )	_match_idsplit_download_webpage_search_regexr   _html_search_regex_meta_regexrefindallr	   replaceappend)selfr   video_idwebpager   r   r   r   r   available_resolutionsr+   
resolutionfrmt r<   H/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/gab.py_real_extract   sH   
zGabTVIE._real_extractN__name__
__module____qualname__
_VALID_URL_TESTSr>   r<   r<   r<   r=   r      s    r   c                   @   sR   e 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dddgZdd ZdS )GabIEz3https?://(?:www\.)?gab\.com/[^/]+/posts/(?P<id>\d+)z7https://gab.com/SomeBitchIKnow/posts/107163961867310434 8ca34fb00f1e1033b5c5988d79ec531dz107163961867310434-0r   zL on Gab946600SomeBitchIKnowz$md5:204055fafd5e1a519f5d6db953567ca3iwa20211025)r   r   r   r   r   r   	timestampupload_date)r   md5r   z7https://gab.com/TheLonelyProud/posts/107045884469287653 f9cefcfdff6418e392611a828d47839dz107045884469287653-0zJody Sadowski on Gab1390705i[a20211004TheLonelyProud)r   r   r   r   rJ   rK   r   c           
         s|  |  |}| d| |}g }t|d D ]\}}|ddvr"q|d }t|ddt|dp6d	d
d |dd  fdd|d|dpRi f|d|dp]i ffD }|dphi }	|| d| |d d  dt|d|t	|d|dpt
|d|d|d|d|	d|	d |	dd! qt|d"kr| ||S |d S )#Nz https://gab.com/api/v1/statuses/media_attachmentstype)videogifvmetaaudio_encoder$   audio_bitrater%    r   fps)r$   asrrY   c              	      s@   g | ]\}}|r|| d | dt| dddd qS )widthr(   bitratei  )scale)r   r[   r(   tbr)getr   ).0r   fformat_metadatar<   r=   
<listcomp>p   s    z'GabIE._real_extract.<locals>.<listcomp>r   original
source_mp4playableaccountr   display_namez on Gab
created_atr   durationlengthfavourites_countreplies_countreblogs_countusernamer   )r   r   rJ   r+   r   rk   
like_countcomment_countrepost_countr   r   uploader_urlr   )r,   _download_json	enumerater_   r   r   r-   r5   r
   r   r   lenplaylist_result)
r6   r   post_id	json_dataentriesidxmediametadatar+   authorr<   rb   r=   r>   a   sD   

	
zGabIE._real_extractNr?   r<   r<   r<   r=   rE   D   s6    rE   )r2   commonr   utilsr   r   r   r   r	   r
   r   rE   r<   r<   r<   r=   <module>   s
     
6