o
    =]i                     @   s^   d Z ddlZddlZddlZddlZddlmZ eejj	 ej
d G dd deZdS )ud   
@header({
  searchable: 1,
  filterable: 1,
  quickSearch: 1,
  title: '端木',
  lang: 'hipy'
})
    N)Spiderz..c                   @   s   e Zd Zdddddi dddd	d
dddddddhf\ZZZZdd Zdd Z	dd Z
d,ddZdd Zdd Zdd Zd-dd Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+S ).r   zokhttp/3.10.0z
Keep-Alivegzip)
User-Agent
ConnectionzAccept-Encodingzhttp://154.219.117.219:8080s   ۲zbig5s   T'`zutf-16s   s   gbks   ֧Qs   c              
   C   s@   ddddddddddd	d
ddddddddddgiS )Nclass   u   电影)type_id	type_name   u	   电视剧   u   动漫   u   综艺   u	   纪录片   u   少儿   u   短剧 )selffilterr   r   &   /storage/emulated/0/lz/py/sy/端木.pyhomeContent   s   @zSpider.homeContentc                 C   sb   | j | j d| jdd }|d }g }|D ]}t|tr,d|v r,|| |d  qd|iS )Nz%/dev_webvip/v4/app/homeListNew?type=0FheadersverifydataZdataInfoListlist)fetchhostr   json
isinstancedictextendarr2vods)r   responser   videosir   r   r   homeVideoContent   s   zSpider.homeVideoContentc                 C   sJ   | j | j d| d| | jdd }|d }| |d |d |dS )	Nz8/dev_webvip/v2/app/getVideoList?pageSize=12&currentPage=z&type=Fr   r   r   pages)r   	pagecountpage)r   r   r   r   r"   )r   tidpgr   r!   r#   r   r   r   r   categoryContent'   s   (zSpider.categoryContent1c                 C   s8   | j | j dd|i| jdd }| |d |dS )Nz#/dev_webvip/v2/app/getVideoListTypenameF)r   r   r   r   )r   r)   )postr   r   r   r"   )r   keyquickr+   r#   r   r   r   searchContent,   s   $zSpider.searchContentc                 C   s(  |d  dd\}}t|}| j| j d| | jdd }|d }|d D ]}|d	 |d
 |d d| j|d < q(g g }}	dg }
}|d D ]&}|
sW| j|d  d	 }
||d  d|d  d|d|dd  qJ||
 |	d	| d|i|d	|d	|	d}d|giS )Nr   @r	   z0/dev_webvip/v1/typeNameList/totalList?vDetailId=Fr   r   ZvipTypeUrlNamestypeUrlNamejxApiua)r4   r5   r6   ZvUrlType ZvideoUrlListsZvTitle$ZvUrlZgfUrl#vod_idz$$$)vod_play_fromvod_play_urlr   )
splitr   loadsr   r   r   playerappendgetjoin)r   idsviddetaildetailsr#   r   r%   show	play_urlsr.   urlsvideor   r   r   detailContent0   s0   
"

4

zSpider.detailContentc                 C   s  d\}}}| dd\}}| j| }z6|d rGt|d trG| j|d  | | jdd }	|	d }
|
dr>|
|kr>|
}|	d	}|rG|}W n	 t	yQ   Y nw |d
 ret|d
 tre|d
 
dd}|s}|drrd|}}ntd|r}d|}}|d|d|idS )N)r   r7   zLavf/58.12.100r3   r	   r5   Fr   urlhttpZUAr6   zUser-Agent=>r7   r   z:(?:www\.iqiyi|v\.qq|v\.youku|www\.mgtv|www\.bilibili)\.comr   )jxparserL   header)r=   r?   r   strr   r   r   
startswithrA   	Exceptionreplaceresearch)r   flagrD   	vip_flagsrN   rL   Zplay_uaZ
v_url_typeZraw_urlr#   play_urlr6   r   r   r   playerContentJ   s.   

"


zSpider.playerContentc                    s~  g }t |tr|D ]  dd}}|r d  d| n d  dr<t  dtr<t fdd| jD r<q	 drVt  dtrVt fd	d| jD rVq	rit tritfd
d| jD st d }|D ]
}|d r||d }qrtj d | d  d  d  d  d dddd}|	 d d d|  d  d | d dd q	|S )NZvTest2r7   ZvClass,vTagc                 3       | ]
}|  d v V  qdS )r\   NrA   ).0kr%   r   r   	<genexpr>g       z"Spider.arr2vods.<locals>.<genexpr>vTest1c                 3   r]   )rd   Nr^   )r_   nra   r   r   rb   h   rc   c                 3   s    | ]}| v V  qd S Nr   )r_   l)r   r   r   rb   i   s    vRemakeremakeZvPicZvYearZvAreaZvActorZvWriterZvContent)vod_picvod_remarksvod_yearvod_area	vod_actorvod_directorvod_contentr   F)r[   :)ensure_ascii
separatorsZ	vDetailIdidr3   ZvNameZvBlurb)r:   vod_namerj   rk   rp   )
r   r   rA   rQ   anytaresr   r>   dumpsr@   )r   arrr$   Ztag2ri   rh   jrE   r   )r%   r   r   r"   a   sB   
44&	
zSpider.arr2vodsr7   c                 C      d S rf   r   )r   r!   r   r   r   init      zSpider.initc                 C   r{   rf   r   r   r   r   r   getName   r}   zSpider.getNamec                 C   r{   rf   r   )r   rL   r   r   r   isVideoFormat   r}   zSpider.isVideoFormatc                 C   r{   rf   r   r~   r   r   r   manualVideoCheck   r}   zSpider.manualVideoCheckc                 C   r{   rf   r   r~   r   r   r   destroy   r}   zSpider.destroyc                 C   r{   rf   r   )r   paramr   r   r   
localProxy   r}   zSpider.localProxyN)r-   )r7   )__name__
__module____qualname__decoder   r   r?   rw   r   r&   r,   r2   rK   rZ   r"   r|   r   r   r   r   r   r   r   r   r   r      s(    6	

r   )__doc__rU   sysr   urllib3base.spiderr   disable_warnings
exceptionsInsecureRequestWarningpathr@   r   r   r   r   <module>   s     