
    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 )QiandureboLiveStreamzQ
    A class for fetching and processing Qiandurebo live stream information.
    N
proxy_addrcookiesc                 P    t         |   ||       | j                         | _        y N)super__init___get_pc_headers
pc_headers)selfr   r   	__class__s      [/home/uftp/myenv/lib/python3.12/site-packages/streamget/platforms/qiandurebo/live_stream.pyr   zQiandureboLiveStream.__init__   s"    W-..0    urlprocess_datareturnc                   K   t        || j                  | j                         d{   }t        j                  d|t        j
                        j                  d      }t        j                  d|      }ddd}t        |      d	kD  rC|d	   |d
<   t        j                  d|      }t        |      d	kD  rd|vr||d	   d|d	   |d	   dz  }|S 7 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   r   headersNz#var user = (.*?)
\s+user\.play_url   z"zb_nickname": "(.*?)",
 F)anchor_nameis_liver   r   z"play_url": "(.*?)",
z(common-text-center" style="display:blockT)r   r   flv_url
record_url)	r   r   r   researchDOTALLgroupfindalllen)r   r   r   html_strdatar   resultplay_urls           r   fetch_web_stream_dataz*QiandureboLiveStream.fetch_web_stream_data   s      #stPTP_P_``yyBHbiiX^^_`ajj!>E!#6{a$/NF=!zz"<dCH8}q %OW_%_#.q>#'{"*1+	  ! as   &CCB'C	json_data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%QiandureboLiveStream.fetch_stream_url-   s#     
 	j"677	9%%s   )NN)Tr   )__name__
__module____qualname____doc__strr   booldictr,   staticmethodintr   r1   __classcell__)r   s   @r   r
   r
      sq    13: 1sTz 1s $ RV : &$ &sSy4?O &[e & &r   r
   )	r"   r)   r   r   requests.async_httpr   baser   r
    r   r   <module>r?      s    	 + , !+&> +&r   