
    OJniy                     n    d dl Z d dlZd dlZd dlZddlm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   )JS_SCRIPT_PATH)
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 )HaixiuLiveStreamzM
    A class for fetching and processing Haixiu live stream information.
    N
proxy_addrcookiesc                 P    t         |   ||       | j                         | _        y N)super__init___get_mobile_headersmobile_headers)selfr   r   	__class__s      W/home/uftp/myenv/lib/python3.12/site-packages/streamget/platforms/haixiu/live_stream.pyr   zHaixiuLiveStream.__init__   s#    W-"668    returnc                 ,    ddd| j                   xs ddS )Nzhttps://www.haixiutv.comzhttps://www.haixiutv.com/z;ios/7.830 (ios 17.0; ; iPhone 15 (A2846/A3089/A3090/A3092)) )originrefererz
user-agentcookie)r   )r   s    r   r   z$HaixiuLiveStream._get_mobile_headers   s!    02Wll(b	
 	
r   urlprocess_datac                 (  K   |j                  d      d   j                  dd      d   }d|v rd}nd	}|d
dt        t        j                         dz        d}	 t	        t
         d      5 }|j                         }ddd       t        j                        j                  d|t
         d      }t        j                  j                  t        j                  j                  |            |d<   ||d<   t        t        j                         dz        |d<   t        j                  j                  |      }	d|v r	d| d|	 }
n&d| j                  d<   d| j                  d<   d| d|	 }
t!        |
| j"                  | j                         d{   }t%        j&                  |      }|s|S |d   }|d   }|d   }|d d!}|dk(  r|d"   }|d#||d$z  }|S # 1 sw Y   \xY w# t        j                  $ r t        j                  d      w xY w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   /   )maxsplithaixiutvzHpLXSC%252FXJ0asc1I21tVL5FYZhNJn2Zg6d7m94umCnpgL%252BuVm31GQvyw%253D%253DzHs7FUbTJ%252BjILrR7kicJUg8qr025ZVjd07DAnUQd8c7g%252Fo4OH9pdSX6w%253D%253D300000610138100100000i  )accessTokentkuc_st1z
/haixiu.jsNsignz/crypto-js.min.jszBFailed to execute JS code. Please check if the Node.js environmentr)   
_ajaxData1_z%https://service.haixiutv.com/v2/room/z/media/advanceInfoRoom?zhttps://www.lehaitv.comr   r   z$https://service.lehaitv.com/v2/room/)r   headersdatanicknamelive_statusF)anchor_nameis_livemedia_url_webT)r5   flv_url
record_url)splitrsplitinttimeopenr   readexecjscompilecallProgramErrorurllibparseunquote	urlencoder   r   r   jsonloads)r   r   r   room_idaccess_tokenparamsfjs_code	ajax_dataencode_paramsapijson_str	json_datastream_datar4   r3   resultr7   s                     r   fetch_web_stream_dataz&HaixiuLiveStream.fetch_web_stream_data   s)     ))C.#**3*;B?eLeL (!		d*+	
	l(
34 #&&(#w/44VVGWWhEijI !' 4 4V\\5I5I,5W X}(|$))+,-s..v69'BYZgYhiC,ED)-FD	*8	AXYfXghC"34??DL_L_``JJx(	'!*-!-0!,?!!/2G$7'RRF;# # "" 	l%%&jkk	l asD   AHG$ ,G=5G$ 2CHHAHG!G$ $)HHrR   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   )rR   rV   s     r   fetch_stream_urlz!HaixiuLiveStream.fetch_stream_urlT   s"     
 	j.11	9%%s   )NN)Tr   )__name__
__module____qualname____doc__strr   dictr   boolrU   staticmethodr;   r   rY   __classcell__)r   s   @r   r   r      s~    93: 9sTz 9
T 
5s 5$ 5RV 5n &$ &sSy4?O &[e & &r   r   )rG   r<   urllib.parserC   r?   r   r   r1   r   r   requests.async_httpr   baser	   r    r   r   <module>rg      s+         + , !M&~ M&r   