o
    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deviceZ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 d
edef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      zSpider.getNamec                 C      d S Nr   )r   extendr   r   r   initS   r   zSpider.initc                 C   r    r!   r   )r   urlr   r   r   isVideoFormatV   r   zSpider.isVideoFormatc                 C   r    r!   r   r   r   r   r   manualVideoCheckY   r   zSpider.manualVideoCheckr   start_index1
end_index2c              
   C   sB  |dkrg }	 | |}|dkrn)| ||t| }	|	dkr n||t| |	 }
||
 |||
 | d}qt|dkrd}tt|D ]X}t||| }d}|D ]=}td|d }|rh|d}nd}d|d vr|d	|d  d
| t	 |d  7 }qV|d	|d  d
| |d  7 }qV|dd  }|| d }qH|d d }|S dS | |}|dkrdS | ||t| }	|	dkrdS |dkr||t| |	 }
|
ddS |dkr||t| |	 }
t||
}|rd
|}|S |dkr||t| |	 }
t||
}|rdd |D }d
|}|S d S d S )N   Tr   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   textZ	start_strZend_strplr'   r(   ZplxZstart_index	end_indexZmiddle_textZpurlimatchesoutputmatchZmatch3numberZjgZnew_listr   r   r   extract_middle_text\   sn   


&"



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rG| }|d d D ]&}|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jsonr8   )r   videosr$   detailr   vodnamerY   picremarkvideorR   r   r   r   homeVideoContent   s&   

zSpider.homeVideoContentc                 C   s   i }g }t  d| d| d}tj|td}d|_|jdkrO| }	|	d d D ]&}
|
d	 d
 }|
d	 d }|
d	 d }|
d	 d }||||d}|| q(d|i}||d< d|d< d|d< d|d< |S )Nz'/v1/theater/home_page?theater_class_id=z
&page_num=z&page_size=24rT   r   rU   r   rV   rW   rX   rY   rZ   Zthemer[   page'  	pagecountZ   limit?B totalr`   )r   cidpgrQ   extrR   rg   r$   rh   r   ri   rj   rY   rk   rl   rm   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r&| }	d}t|}
d|
_|
j}| |dd	d}| |d
d	d}d|	d d  }|	d d d }|	d d }d|	d v r|	d d r|	d d D ]}|d }|d }|t	| d | d }qk|
dr|d d n|}d}nd|	d v r|	d d rd|	d d  }d}n|}d}|||||||d ||d< |S )Nr   r   z,/v2/theater_parent/detail?theater_parent_id=rT   r   rU   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   星芽Z	video_urlz1$r   )r\   vod_contentr_   vod_areavod_play_fromvod_play_urlrV   )r?   ra   rb   rc   rd   re   rf   rA   rI   strendswithr8   )r   idsZdidrR   rg   ZxianluZbofangr$   rh   r   responsecoderj   ZJumpscontentZarearemarksZsourY   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   flagrY   vipFlagsrR   r   r   r   playerContent  s   zSpider.playerContentc                 C   s   i }g }d|i}t  d}tj|t|d}|jdkrHd|_| }	|	d d d D ]}
|
d	 }|
d
 }|
d }|
d }||||d}|| q)||d< ||d< d|d< d|d< d|d< |S )NrA   z
/v3/search)r$   r   rf   rU   r   r   rW   Zsearch_datarX   rY   rZ   Z	score_strr[   rV   ro   rp   rq   rr   rs   rt   ru   )r?   ra   postrc   re   rd   rf   r8   )r   keyquickro   rR   rg   payloadr$   rh   r   ri   rj   rY   rk   rl   rm   r   r   r   searchContentPage&  s4   

zSpider.searchContentPager   c                 C   s   |  ||dS )Nr   )r   )r   r   r   rw   r   r   r   searchContentM  s   zSpider.searchContentc                 C   sF   |d dkr|  |S |d dkr| |S |d dkr!| |S d S )NtypeZm3u8Zmediats)Z	proxyM3u8Z
proxyMediaZproxyTs)r   paramsr   r   r   
localProxyP  s   


zSpider.localProxyN)r   r   )r   )__name__
__module____qualname__r   r#   r%   r&   r   rI   rS   rn   ry   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	   Zbs4r
   base64r   urllib.requesturllibbinasciira   rf   timesysr;   ospathr8   r?   r   Zheaderfinttimesr   dumps
plain_textr   encodeZ	key_bytesZplain_bytesnewMODE_ECBcipher
block_sizepadded_dataencrypt
ciphertext	b64encodedecodeZ	encryptedr   r   Zresponse_dataAuthorizationrc   r   r   r   r   <module>   sn   


