
    OJni3
                     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e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 )PiaopaioLiveStreamzO
    A class for fetching and processing Piaopiao live stream information.
    N
proxy_addrcookiesc                 P    t         |   ||       | j                         | _        y N)super__init___get_pc_headers
pc_headers)selfr   r   	__class__s      Y/home/uftp/myenv/lib/python3.12/site-packages/streamget/platforms/piaopiao/live_stream.pyr   zPiaopaioLiveStream.__init__   s"    W-..0    returnc                 .    dddd| j                   xs ddS )Nzapplication/jsonzhttps://m.pp.weimipopo.comzhttps://m.pp.weimipopo.com/z;ios/7.830 (ios 17.0; ; iPhone 15 (A2846/A3089/A3090/A3092)) )zcontent-typeoriginrefererz
user-agentcookie)r   )r   s    r   r   z"PiaopaioLiveStream._get_pc_headers   s$    .24Wll(b
 	
r   urlprocess_datac                 ^  K   | j                  |d      }d|d}d|v r!d}d| j                  d<   d| j                  d<   nd	}t        ||| j                  | j                  
       d{   }t	        j
                  |      }|s|S |d   }|d   }|d   }	|dd}
|	r|d   }|
d||dz  }
|
S 7 C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.
        	anchorUidr   )
inviteUuid
anchorUuidcatshowz'https://api.catshow168.com/live/previewzhttps://h.catshow168.comOriginRefererz)https://api.pp.weimipopo.com/live/preview)	json_datar   headersNdatanamelivingF)anchor_nameis_livepullUrlT)r,   m3u8_url
record_url)
get_paramsr   r   r   jsonloads)r   r   r   room_idr&   apijson_str	live_infor+   live_statusresultr.   s               r   fetch_web_stream_dataz(PiaopaioLiveStream.fetch_web_stream_data   s      //#{3!
	
 ;C(BDOOH%)CDOOI&=C"3)aeapapqqJJx(	f%	')!,? +H$HHUUF rs   A%B-'B+(AB-r&   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   飘飘直播)r   )r&   r:   s     r   fetch_stream_urlz#PiaopaioLiveStream.fetch_stream_url=   s"     
 	j.11	9%%s   )NN)Tr   )__name__
__module____qualname____doc__strr   dictr   boolr9   staticmethodintr   r=   __classcell__)r   s   @r   r
   r
      s~    13: 1sTz 1
 
"s "$ "RV "H &$ &sSy4?O &[e & &r   r
   )	r1   r(   r   r   requests.async_httpr   baser   r
    r   r   <module>rK      s     + , !;& ;&r   