U
    =]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|k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   Zpages)r   Z	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 < qPg g  }}	dg  }
}|d D ]L}|
s| j|d  d	 }
||d  d|d  d|d|dd  q||
 |	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)r2   r3   r4   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%   showZ	play_urlsr,   urlsZvideor   r   r   detailContent0   s2    
"

 4
 zSpider.detailContentc                 C   s  d\}}}| dd\}}| j| }zl|d rt|d tr| j|d  | | jdd }	|	d }
|
dr||
|kr||
}|	d	}|r|}W n t	k
r   Y nX |d
 rt|d
 tr|d
 
dd}|s |drd| }}ntd|r d| }}|d|d|idS )N)r   r5   zLavf/58.12.100r1   r	   r3   Fr   urlhttpZUAr4   zUser-Agent=>r5   r   z:(?:www\.iqiyi|v\.qq|v\.youku|www\.mgtv|www\.bilibili)\.comr   )jxparserH   header)r;   r=   r   strr   r   r   
startswithr?   	Exceptionreplaceresearch)r   flagrB   Z	vip_flagsrJ   rH   Zplay_uaZ
v_url_typeZraw_urlr#   Zplay_urlr4   r   r   r   playerContentJ   s,    

"
 

zSpider.playerContentc                    s  g }t |tr~|D ]f  dd }}|r@ d  d| n d  dr|t  dtr|t fdd| jD r|q drt  dtrt fd	d| jD rqrt trtfd
d| jD st d }|D ]}|d r|d }qtj d | d  d  d  d  d dddd}|	 d d d|  d  d | d dd q|S )NZvTest2r5   ZvClass,vTagc                 3   s   | ]}|  d kV  qdS )rV   Nr?   ).0kr%   r   r   	<genexpr>g   s     z"Spider.arr2vods.<locals>.<genexpr>vTest1c                 3   s   | ]}|  d kV  qdS )r\   NrW   )rX   nrZ   r   r   r[   h   s     c                 3   s   | ]}| kV  qd S Nr   )rX   l)r   r   r   r[   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)rU   :)ensure_ascii
separatorsZ	vDetailIdidr1   ZvNameZvBlurb)r8   vod_namerb   rc   rh   )
r   r   r?   rM   anytaresr   r<   dumpsr>   )r   Zarrr$   Ztag2ra   r`   jrC   r   )r%   r   r   r"   a   sF    
2 2 & 
	 

zSpider.arr2vodsr5   c                 C   s   d S r^   r   )r   r!   r   r   r   init   s    zSpider.initc                 C   s   d S r^   r   r   r   r   r   getName   s    zSpider.getNamec                 C   s   d S r^   r   )r   rH   r   r   r   isVideoFormat   s    zSpider.isVideoFormatc                 C   s   d S r^   r   rs   r   r   r   manualVideoCheck   s    zSpider.manualVideoCheckc                 C   s   d S r^   r   rs   r   r   r   destroy   s    zSpider.destroyc                 C   s   d S r^   r   )r   paramr   r   r   
localProxy   s    zSpider.localProxyN)r+   )r5   )__name__
__module____qualname__decoder   r   r=   ro   r   r&   r*   r0   rG   rT   r"   rr   rt   ru   rv   rw   ry   r   r   r   r   r      s*     2	

r   )__doc__rQ   sysr   urllib3base.spiderr   disable_warnings
exceptionsInsecureRequestWarningpathr>   r   r   r   r   <module>   s
    