
    OJni                     J    d dl Z ddlmZmZ ddlmZ ddlmZ  G d de      Zy)	    N   )
StreamDatawrap_stream)	async_req   )BaseLiveStreamc                   |     e Zd ZdZddedz  dedz  f fdZddededefd	Ze	dd
edee
z  dz  defd       Z xZS )MaoerLiveStreamzL
    A class for fetching and processing Maoer live stream information.
    N
proxy_addrcookiesc                 P    t         |   ||       | j                         | _        y N)super__init___get_pc_headers
pc_headers)selfr   r   	__class__s      V/home/uftp/myenv/lib/python3.12/site-packages/streamget/platforms/maoer/live_stream.pyr   zMaoerLiveStream.__init__   s"    W-..0    urlprocess_datareturnc                   K   |j                  d      d   j                  dd      d   }d| }t        || j                  | j                         d{   }t        j                  |      }|s|S |d	   d
   d   }d}d|d	   v r|d	   d   d   d   }||d}	|r+|d	   d   d   }
|
d   }|
d   }|d	   d   d   }|	d||||dz  }	|	S 7 sw)a)  
        Fetches web stream data for a live room.

        Args:
            url (str): The room URL.
            process_data (bool): Whether to process the data. Defaults to True.

        Returns:
            dict: A dictionary containing anchor name, live status, room URL, and title.
        ?r   /   )maxsplitz$https://fm.missevan.com/api/v2/live/)r   r   headersNinfocreatorusernameFroomstatusbroadcasting)anchor_nameis_livechannelhls_pull_urlflv_pull_urlnameT)r'   titlem3u8_urlflv_url
record_url)splitrsplitr   r   r   jsonloads)r   r   r   room_idurl2json_str	json_datar&   live_statusresultstream_listr-   r.   r,   s                 r   fetch_web_stream_dataz%MaoerLiveStream.fetch_web_stream_data   s     ))C.#**3*;A>5gY?"tQUQ`Q`aaJJx(	'	2:>Yv&&#F+F3H=nMK!,E#F+F3I>K">2H!.1Gf%f-f5E$HY`%,. .F# bs   ACC	A4Cr7   video_qualityc                 .   K   | ddiz  } t        |       S w)z_
        Fetches the stream URL for a live room and wraps it into a StreamData object.
        platformu   猫耳FM直播)r   )r7   r<   s     r   fetch_stream_urlz MaoerLiveStream.fetch_stream_url1   s#     
 	j"233	9%%s   )NN)Tr   )__name__
__module____qualname____doc__strr   booldictr;   staticmethodintr   r?   __classcell__)r   s   @r   r
   r
      sr    13: 1sTz 1s $ RV B &$ &sSy4?O &[e & &r   r
   )	r2   datar   r   requests.async_httpr   baser   r
    r   r   <module>rN      s     + , !/&n /&r   