U
    g                     @   s0   d dl mZ ddlmZmZ G dd deZdS )   )InfoExtractor   )ExtractorErrortry_getc                	   @   s`   e Zd ZdZdZdZddddddd	d
dd	iddddddddd	d
dd	iddgZdd ZdS )
SaitosanIEFZSaitosanz>https?://(?:www\.)?saitosan\.net/bview.html\?id=(?P<id>[0-9]+)z.http://www.saitosan.net/bview.html?id=10031846Z10031846mp4u   井下原 和弥zEhttp://111.171.196.85:8088/921f916f-7f55-4c97-b92e-5d9d0fef8f5f/thumbT)idexttitleuploader	thumbnailis_liveZskip_downloadzBroadcasts are ephemeral)urlZ	info_dictparamsskipz.http://www.saitosan.net/bview.html?id=10031795Z10031795u   橋本zEhttp://111.171.196.85:8088/1a3933e1-a01a-483b-8931-af15f37f8082/thumbc           
   	   C   sB  |  |}d}| j||ddd}|d| 7 }| j||dd d| d}t| d	| }| j|||d
d | j||dd}|ds|dpi }t|rd| j|dd|ddndd|d| j||ddd | j||dd}|d}	| j||dddd ||d| j|	|ddd|		d d!t
|d"d# dd$S )%NzHhttp://hankachi.saitosan-api.net:8002/socket.io/?transport=polling&EIO=3zOpening socket)notesidz&sid=zPolling socketz"420["room_start_join",{"room_id":"z"}]:zPolling socket with payload)datar   okerrorz{} said: {} - {}code?msgUnknownzfThe socket reported that the broadcast could not be joined. Maybe it's offline or the URL is incorrectT)expectedZvideo_idz26:421["room_finish_join",{}]z&Getting broadcast metadata from socketr   z1:1zClosing socketF)r   r   fatalnamer   )Zlivezav.m3u8Zthumbc                 S   s   | d d S )NZbroadcast_userr    )xr   r   =/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/saitosan.py<lambda>I       z*SaitosanIE._real_extract.<locals>.<lambda>)r   r
   formatsr   r   r   )Z	_match_idZ_download_socket_jsongetZ_download_webpagelenr   formatIE_NAMEZ_extract_m3u8_formatsreplacer   )
selfr   Zb_idbaser   payloadresponseerrZb_dataZm3u8_urlr   r   r    _real_extract*   s8    

$ 

zSaitosanIE._real_extractN)__name__
__module____qualname__Z_WORKINGr'   Z
_VALID_URLZ_TESTSr.   r   r   r   r    r      s>   
 
 !r   N)commonr   utilsr   r   r   r   r   r   r    <module>   s   