o
    iu	                     @   s`   d dl Z d dlZddlmZ ddlmZmZ G dd deZG dd	 d	eZ	G d
d deZ
dS )    N   )InfoExtractor   )classpropertyint_or_nonec                       sL   e Zd ZdZdZedd Zedd Z fddZd	d
 Z	dd Z
  ZS )MangomoloBaseIEzh(?:https?:)?//(?:admin\.mangomolo\.com/analytics/index\.php/customers/embed/|player\.mangomolo\.com/v1/)Nc                 C   s   | j  | j S N)_BASE_REGEX_SLUGcls r   N/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/mangomolo.py
_VALID_URL      zMangomoloBaseIE._VALID_URLc                 C   s   d| j  dgS )Nz<iframe[^>]+src=(["\'])(?P<url>z.+?)\1)r   r   r   r   r   _EMBED_REGEX   r   zMangomoloBaseIE._EMBED_REGEXc              	   #   sN    t  ||D ]}i |d| j| j|d ddd| d|ddV  qd S )Nurl_transparenturlid)groupz^(?:https?://)?([^/]*)/.*zvideo uploader)_typer   uploader)super_extract_from_webpage_search_regexr
   )selfr   webpageres	__class__r   r   r      s   z%MangomoloBaseIE._extract_from_webpagec                 C   s   |S r   r   r   page_idr   r   r   _get_real_id   s   zMangomoloBaseIE._get_real_idc                 C   s   |  | |}| d| j|dd |}| |}| jr"dnd}| ddg|d}| 	|||d	g}|||
d
t|
d| j|dS )Nz%https://player.mangomolo.com/v1/{}?{}?r   m3u8m3u8_nativez4(?:file|src)\s*:\s*"(https?://[^"]+?/playlist\.m3u8)z<a[^>]+href="(rtsp://[^"]+)"z
format urlsmiluseridduration)r   titleuploader_idr(   is_liveformats)r"   	_match_id_download_webpageformat_TYPEsplit_hidden_inputs_IS_LIVE_html_search_regex_extract_wowza_formatsgetr   )r   r   r!   r   hidden_inputsm3u8_entry_protocol
format_urlr,   r   r   r   _real_extract    s,   

zMangomoloBaseIE._real_extract)__name__
__module____qualname__r	   r
   r   r   r   r   r"   r:   __classcell__r   r   r   r   r      s    

	r   c                   @   s    e Zd ZdZde ZdZdZdS )MangomoloVideoIEvideo
mangomolo:zvideo\?.*?\bid=(?P<id>\d+)FN)r;   r<   r=   r0   IE_NAMEr
   r3   r   r   r   r   r?   9   s
    r?   c                   @   s(   e Zd ZdZde ZdZdZdd ZdS )MangomoloLiveIEliverA   zF(?:live|index)\?.*?\bchannelid=(?P<id>(?:[A-Za-z0-9+/=]|%2B|%2F|%3D)+)Tc                 C   s   t tj| S r   )base64	b64decodeurllibparseunquotedecoder    r   r   r   r"   G   s   zMangomoloLiveIE._get_real_idN)r;   r<   r=   r0   rB   r
   r3   r"   r   r   r   r   rC   A   s    rC   )rE   urllib.parserG   commonr   utilsr   r   r   r?   rC   r   r   r   r   <module>   s    1