U
    i*                  
   @   s  d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ dd
lmZ ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZejd daddiaddddZee d Zdddddddded	Z ej!e dddZ"dZ#e#$d Z%e"$d Z&e'e%ej(Z)ee&ej*Z+e),e+Z-e.e-/d Z0ej1d!ee0d"Z2e2 Z3e3d# d$ Z4e4dd%d&a5G d'd( d(e
Z
dS ))
    )unpad)pad)unquote)ARC4)quote)Spider)AES)BeautifulSoup)	b64decodeNz..zhttps://app.whjzjx.cnz
User-AgentzoLinux; Android 12; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.101 Mobile Safari/537.361zMozilla/5.0 (Linux; Android 9; V1938T Build/PQ3A.190705.08211809; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36zapplication/json; charset=utf-8)platform
user_agentzcontent-typei  Z!2a50580e69d38388c94c93605241fb306zcom.jz.xydjZec1280db12795506Tl   V` )	Zdevicepackage_nameZ
android_idZinstall_first_openZfirst_install_timeZlast_update_timeZreport_link_urlauthorization	timestamp),:F)
separatorsensure_asciizB@ecf920Od8A4df7utf-8z,https://u.shytkjgs.com/user/v3/account/login)headersdatar   tokenz3.8.3.1)r   r   Zversion_namec                   @   s   e Zd Zdd Zdd Zdd Zdd Zdeed
ddZdd Z	dd Z
dd Zdd Zdd Zdd Zd ddZdd ZdS )!r   c                 C   s   dS )Nu   首页 selfr   r   ,   /storage/emulated/0/lz/py/sy/星芽短剧.pygetNameP   s    zSpider.getNamec                 C   s   d S Nr   )r   extendr   r   r   initS   s    zSpider.initc                 C   s   d S r    r   )r   urlr   r   r   isVideoFormatV   s    zSpider.isVideoFormatc                 C   s   d S r    r   r   r   r   r   manualVideoCheckY   s    zSpider.manualVideoCheckr   )start_index1
end_index2c              
   C   sN  |dkr\g }| |}|dkr"qt| ||t| }	|	dkr@qt||t| |	 }
||
 |||
 | d}qt|dkrVd}tt|D ]}t||| }d}|D ]|}td|d }|r|d}nd}d|d kr
|d|d  d	| t	 |d  7 }q|d|d  d	| |d  7 }q|dd  }|| d
 }q|d d }|S dS n:| |}|dkrtdS | ||t| }	|	dkrdS |dkr||t| |	 }
|
ddS |dkr||t| |	 }
t||
}|rd
|}|S |dkrJ||t| |	 }
t||
}|rJdd |D }d

|}|S d S )N   r   r   z(?:^|[^0-9])(\d+)(?:[^0-9]|$)   http#$z$$$\    c                 S   s   g | ]
}| qS r   r   ).0itemr   r   r   
<listcomp>   s     z.Spider.extract_middle_text.<locals>.<listcomp>)findlenappendreplacerangerefindallsearchgroupxurljoin)r   text	start_strend_strplr&   r'   plxstart_index	end_indexmiddle_textpurlimatchesoutputmatchmatch3numberjgnew_listr   r   r   extract_middle_text\   sf    


&"







zSpider.extract_middle_textc                 C   s8   i }ddddddddddd	d
ddddgi}|S )Nclassr   u   剧场)type_id	type_name3u   新剧2u   热播7u   星选5u   阳光r   )r   filterresultr   r   r   homeContent   s    
zSpider.homeContentc                 C   s   g }t  d}tj|td}d|_|jdkr| }|d d D ]L}|d d }|d d	 }|d d
 }|d d }	||||	d}
||
 q@d|i}|S )NzL/v1/theater/home_page?theater_class_id=1&class2_id=4&page_num=1&page_size=24r#   r   r      r   listtheatertitleid	cover_urlZplay_amount_strvod_idvod_namevod_picvod_remarksr>   requestsgetheaderxencodingstatus_codejsonr7   )r   videosr#   detailr   vodnamera   picremarkvideorZ   r   r   r   homeVideoContent   s&    

zSpider.homeVideoContentc                 C   s   i }g }t  d| d| d}tj|td}d|_|jdkr| }	|	d d D ]L}
|
d	 d
 }|
d	 d }|
d	 d }|
d	 d }||||d}|| qPd|i}||d< d|d< d|d< d|d< |S )Nz'/v1/theater/home_page?theater_class_id=z
&page_num=z&page_size=24r\   r   r]   r   r^   r_   r`   ra   rb   Zthemerc   page'  	pagecountZ   limit?B totalrh   )r   cidpgrY   extrZ   ro   r#   rp   r   rq   rr   ra   rs   rt   ru   r   r   r   categoryContent   s0    
zSpider.categoryContentc              	   C   s  |d }i }g }d}d}t  d| }tj|td}d|_|jdkrL| }	d}t|}
d|
_|
j}| |dd	d}| |d
d	d}d|	d d  }|	d d d }|	d d }d|	d kr*|	d d r*|	d d D ],}|d }|d }|t	| d | d }q|
dr |d d n|}d}n:d|	d kr\|	d d r\d|	d d  }d}n|}d}|||||||d ||d< |S )Nr   r   z,/v2/theater_parent/detail?theater_parent_id=r\   r   r]   z`https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1732707176882/jiduo.txtzs1=''zs2='u	   剧情：r   ZintroductionZ	desc_tagsZfilingZtheatersZson_video_urlnumr-   r,   r)   u   星芽	video_urlz1$r   )rd   vod_contentrg   vod_areavod_play_fromvod_play_urlr^   )r>   ri   rj   rk   rl   rm   rn   r@   rQ   strendswithr7   )r   idsdidrZ   ro   xianlubofangr#   rp   r   responsecoderr   ZJumpscontentarearemarksZsoura   r   r   r   detailContent   sR    

	zSpider.detailContentc                 C   s(   i }d|d< d|d< ||d< t |d< |S )Nr   parser   playUrlr#   header)r   )r   flagra   vipFlagsrZ   r   r   r   playerContent  s    zSpider.playerContentc                 C   s   i }g }d|i}t  d}tj|t|d}|jdkrd|_| }	|	d d d D ]<}
|
d	 }|
d
 }|
d }|
d }||||d}|| qR||d< ||d< d|d< d|d< d|d< |S )Nr@   z
/v3/search)r#   r   rn   r]   r   r   r_   Zsearch_datar`   ra   rb   Z	score_strrc   r^   rw   rx   ry   rz   r{   r|   r}   )r>   ri   postrk   rm   rl   rn   r7   )r   keyquickrw   rZ   ro   payloadr#   rp   r   rq   rr   ra   rs   rt   ru   r   r   r   searchContentPage&  s6     

zSpider.searchContentPager   c                 C   s   |  ||dS )Nr   )r   )r   r   r   r   r   r   r   searchContentM  s    zSpider.searchContentc                 C   sF   |d dkr|  |S |d dkr,| |S |d dkrB| |S d S )Ntypem3u8mediats)	proxyM3u8
proxyMediaproxyTs)r   paramsr   r   r   
localProxyP  s    


zSpider.localProxyN)r   r   )r   )__name__
__module____qualname__r   r"   r$   r%   r   rQ   r[   rv   r   r   r   r   r   r   r   r   r   r   r   K   s   =#8	'
r   )6__doc__Crypto.Util.Paddingr   r   urllib.parser   Crypto.Cipherr   r   base.spiderr   r	   bs4r
   base64r   urllib.requesturllibbinasciiri   rn   timesysr:   ospathr7   r>   r   Zheaderfinttimesr   dumps
plain_textr   encode	key_bytesZplain_bytesnewMODE_ECBcipher
block_sizepadded_dataencrypt
ciphertext	b64encodedecodeZ	encryptedr   r   response_dataAuthorizationrk   r   r   r   r   <module>   sn    


