U
    #iy                     @   sX   d dl Z d dlZd dlZd dlmZ d dlZejd d dl	m
Z
 G dd de
Z
dS )    N)PyQueryz..)Spiderc                   @   s   e Zd ZdZdddZd*ddZdd	 Zd+ddZ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"d# Zd$d% Zd&d' Zd(d) Zd
S )-r   zhttps://hohoj.tvz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36zhttps://hohoj.tv/)
user-agentreferer c                 C   s    |rt |di ni | _d S )Nproxy)jsonloadsgetproxies)selfextend r   %/storage/emulated/0/lz/py/sy/hohoj.pyinit   s    zSpider.initc                 C   s   dS )NZhohojr   r   r   r   r   getName   s    zSpider.getNameNc                 C   s0   zt j|| j|| jddjW S    Y dS X d S )N
   )headersparamsr   timeoutr   )requestsr
   r   r   text)r   urlr   r   r   r   fetch   s     
zSpider.fetchc                 C   s   |  | j}ddddddddddd	dd
ddddddddddddddddddddddddddddddddd d!dd"d#dg|  | t|d$d%S )&Nu   有码search?type=censored)	type_nametype_idu   無碼search?type=uncensoredu   中文字幕search?type=chineseu   歐美search?type=europeu   女優
all_modelsu   亂倫u   main_ctg?id=8&name=亂倫u   強姦凌辱u   main_ctg?id=2&name=強姦凌辱u   內射受孕u    main_ctg?id=12&name=內射受孕u
   多P群交u   main_ctg?id=5&name=多P群交u   巨乳美乳u   main_ctg?id=9&name=巨乳美乳u   出軌u   main_ctg?id=7&name=出軌u   角色劇情u   main_ctg?id=6&name=角色劇情u   絲襪美腿u   main_ctg?id=1&name=絲襪美腿u   潮吹放尿u    main_ctg?id=10&name=潮吹放尿u	   走後門u   main_ctg?id=11&name=走後門u   制服誘惑u   main_ctg?id=4&name=制服誘惑u   主奴調教u   main_ctg?id=3&name=主奴調教.video-item)classfilterslist)r   hostget_filtersparse_videospq)r   filterhtmlr   r   r   homeContent    s,    zSpider.homeContentc                 C   s<   dddddddddd	dd
ddgdg}||||dS )Norderu   排序u   最新Zlatest)nvu   最热Zhotu   最多观看viewsu   最多喜欢likes)keynamevalue)r   r   r   r    r   )r   baser   r   r   r'   :   s    
zSpider.get_filtersc           
      C   s   | j  d|dkr|nd }|r(| ni }t|dkr@||d< | ||}t|}|dkrj| |dn| |d}	|	||djpddd	d
S )N/r!      pz.modelr"   z.pagination aZ   i?B )r%   page	pagecountlimittotal)r&   copyintr   r)   parse_modelsr(   length)
r   tidpgr*   r   r   r   r+   datavideosr   r   r   categoryContentH   s    $zSpider.categoryContentc              	   C   s  |d }| dr | j | n| j d| }| |}t|}d|krb|dd dd nd}|d p|d pd}td	d|}td
d|}| }|d| d| |d	dp|d	d|d
d d}g }	|d D ]J}
|
d  }|
	d}|r|r|	dt||d d| d q|	rVd|	|d< g }|d D ]\}|d}
|
rf|
  }|
	d}|rf|rf|dt||d d| d qf|rd||d< d|giS ) Nr   r6   zid=&r   h1title\s*HoHoJ.*$\s*\|.*$u	   撸出血$z.video-player imgsrczmeta[property="og:image"]contentz
.info span)vod_namevod_play_fromvod_play_urlvod_picvod_yearz.model a.model-namehrefz[a=cr:)idr3   z/]z[/a] 	vod_actorzspan.ctgavod_contentr%   )
startswithr&   r   r)   splitr   resubstripattreqitemsappendr   dumpsjoinfind)r   idsZvidr   r+   rD   Zvideo_idrJ   vodactorsrZ   r3   rV   tagsZctg_spanr   r   r   detailContent[   sD    (
$
&

(zSpider.detailContent1c                 C   sH   d|i}t |dkr||d< | | j d|}| t|d|dS )Nr   r7   r8   z/searchr"   )r%   r:   )r?   r   r&   r(   r)   )r   r2   quickrC   r   r+   r   r   r   searchContent   s
    zSpider.searchContentc                 C   s   |  | j d| }d}td|}|r6|d}n0td|}|rP|dnt|ddpdd}|rd|| jd	 | j d| | jd
dS dddS )Nz
/embed?id=r   z<video[^>]+src="([^"]+)"r7   z(var\s+videoSrc\s*=\s*["\']([^"\']+)["\']videorN   r   r   )r   r   origin)parser   header)rr   r   )r   r&   r^   searchgroupr)   ra   r   )r   flagrW   vipFlagsr+   Z	video_urlmatchr   r   r   playerContent   s$    $
zSpider.playerContentc           	      C   s   g }|  D ]}|dd}|d p6|dd}|r|sBqtdd|}tdd| }|d	}|d
   }|d   }||||ddd| d| |dj	rdnddddd q|S )NrZ   rV   z.video-item-titleimgaltrK   r   rL   z.video-item-ratingz.fa-eyez	.fa-heartrN   u   👁 u    ❤ z.video-item-badgeu   无码rectg      ?typeratio)vod_idrP   rS   vod_remarksvod_tagstyle)
rc   ra   r   r^   r_   r`   rg   parentrd   rA   )	r   rc   rE   ilinkrJ   Zratingr0   r1   r   r   r   r(      s(    
zSpider.parse_videosc                 C   s   dd |  D S )Nc              	   S   sL   g | ]D}|d  dr|d  d|d |d dddddd	qS )
rZ   rV   rU   rz   rN   Zfolderr|   g      ?r}   )r   rP   rS   r   r   )ra   r   ).0r   r   r   r   
<listcomp>   s    
z'Spider.parse_models.<locals>.<listcomp>)rc   )r   rc   r   r   r   r@      s    zSpider.parse_modelsc                 C   s   d S Nr   r   r   r   r   r   isVideoFormat   s    zSpider.isVideoFormatc                 C   s   d S r   r   r   r   r   r   manualVideoCheck   s    zSpider.manualVideoCheckc                 C   s   d S r   r   r   r   r   r   destroy   s    zSpider.destroyc                 C   s   d S r   r   r   r   r   r   homeVideoContent   s    zSpider.homeVideoContentc                 C   s   d S r   r   )r   paramr   r   r   
localProxy   s    zSpider.localProxyc                 C   s   d S r   r   r   r   r   r   liveContent   s    zSpider.liveContent)r   )N)rm   )__name__
__module____qualname__r&   r   r   r   r   r,   r'   rF   rl   ro   ry   r(   r@   r   r   r   r   r   r   r   r   r   r   r      s*   

,
	r   )r   r^   r   pyqueryr   r)   syspathrd   base.spiderr   r   r   r   r   <module>   s   