
    ,g-                         d dl Z d dlmZ d dl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mZ d dlmZ d dlZej                            d           dadd	iad
a G d de          ZdS )    N)BeautifulSoup)Spider)ARC4)unpadz..zhttps://www.fullhd.xxx/zh/z
User-AgentzlMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36 c                   h    e Zd Zd Zd Zd Zd ZddedefdZd	 Z	d
 Z
d Zd Zd Zd Zd Zd ZdS )r   c                     dS )Nu   首页 selfs    '   /storage/emulated/0/纯福利/PY1/4k.pygetNamezSpider.getName   s    x    c                     d S Nr
   )r   extends     r   initzSpider.init       r   c                     d S r   r
   )r   urls     r   isVideoFormatzSpider.isVideoFormat!   r   r   c                     d S r   r
   r   s    r   manualVideoCheckzSpider.manualVideoCheck$   r   r   r   start_index1
end_index2c           
         |dk    rg }	 |                     |          }|dk    rny|                     ||t          |          z             }	|	dk    rnL||t          |          z   |	         }
|                    |
           |                    ||
z   |z   d          }t          |          dk    rd}t	          t          |                    D ]}t          j        |||                   }d}|D ]}t          j        d|d                   }|r|                    d          }nd}d|d         vr$|d	d
|d         z    d| t           |d          z  }e|d	d
|d         z    d| |d          z  }|dd          }||z   dz   }|d d         }|S dS |                     |          }|dk    rdS |                     ||t          |          z             }	|	dk    rdS |dk    r0||t          |          z   |	         }
|
                    dd          S |dk    rH||t          |          z   |	         }
t          j        ||
          }|rd
                    |          }|S |dk    rT||t          |          z   |	         }
t          j        ||
          }|r%d |D             }d
                    |          }|S d S d S )N   Tr   r   z(?:^|[^0-9])(\d+)(?:[^0-9]|$)   http#u   📽️$z$$$\    c                     g | ]}d | S )u   ✨r
   ).0items     r   
<listcomp>z.Spider.extract_middle_text.<locals>.<listcomp>`   s    ===TL$LL===r   )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_lists                       r   extract_middle_textzSpider.extract_middle_text'   s4   77C	K"ii	22"$$ IIg{S^^/KLL	??";Y#?	#IJ

;'''||I$;g$ErJJ	K 3xx!||s3xx 1 1A js1v>>GF!( 	T 	T!#+KUSTX!V!V! '%+\\!__FF%&F!q11"&Y)eAh*>&Y&Y&Y&YuUVx&Y&YYFF"&S)eAh*>&S&S&Sq&S&SSFF#ABBZF&=50DDCRCyr))I..Kb  r		';Y+GHHIBr77{S^^;IEFK&&tR00077{S^^;IEFKj{;;G XXg&&	77{S^^;IEFKj{;;G ==W===ZZ))	 7 r   c                 *    i }ddddddddddgi}|S )	Nclasslatest-updatesu   最新视频🌠)type_id	type_name	top-ratedu   最佳视频🌠most-popularu   热门影片🌠r
   )r   filterresults      r   homeContentzSpider.homeContentd   sB    (8GYZZ(3BTUU(6EWXXZ  r   c                    g }	 t          j        t          t                    }d|_        |j        }t          |d          }dddd}|                                D ]%\  }}|                    dd	
          }|s |	                    dd          }	|	D ]}
|
	                    d          }|rd|d         j
        v r|d         d         n|}|
	                    d          }|r|d         d         nd}|
                    dd          }|rd|j
        v r|d         nd}|rd|vr
t          |z   }|
                    dd          }|r|j                                        nd}||||d}|                    |           'd|i}|S # t          $ r-}t          dt          |                      dg icY d }~S d }~ww xY w)Nr   headersutf-8lxmlu   最新视频u   最佳视频u   热门影片)rJ   rM   rN   div*list_videos_videos_watched_right_now_items)idr)   class_atitler   hrefr   imglazyloaddata-srcr    spandurationvod_idvod_namevod_picvod_remarkslistzError in homeVideoContent: )requestsgetr4   headerxencodingr6   r   itemsr+   find_allattrsstripr-   	Exceptionprintstr)r   videosdetailresdocsections
section_idsection_namesectionvodsvodnamesnameidsrY   picspicremarksremarkvideorP   es                         r   homeVideoContentzSpider.homeVideoContentl   s<   /	 \dG<<<F%FO+CV,,C #1+ . H -5NN,<,< ) )(
L((5-Z([[ ''f'== ) )CLL--E05e'U1X^:S:S58G,,YeD,,s++C+.6QBB88E*8==D.2WzTZ7O7O$z**UWC )vS00"Sj!hhvjhAAG5<DW\//111"F #%$(#&'-	 E MM%((((-)0 f%FM 	  	  	 8A88999B<	 s   FF	 	
G "F;5G ;G c                    i }g }	 |r$t          |          dk    rt           d| d| d}nt           d| d}t          j        |t                    }d|_        |j        }	t          |	d          }
|
                    dd          }|r|	                    dd	          }|D ]}|	                    d
          }|rd|d         j
        v r|d         d         nd}|	                    d
          }|r|d         d         nd}|                    dd          }|rd|j
        v r|d         nd}|rd|vr
t          |z   }|                    dd          }|r|j                                        nd}||||d}|                    |           n6# t          $ r)}t          dt          |                      Y d }~nd }~ww xY w||dddd}|S )Nr   /rS   rU   rV   rW   list-videosrZ   r)   r\   r]   r   r   r^   r_   r`   ra   r    rb   rc   rd   zError in categoryContent: '  Z   ?B ri   page	pagecountlimittotal)intr4   rj   rk   rl   rm   r6   r   r+   ro   rp   rq   r-   rr   rs   rt   )r   cidpgrO   extrP   ru   r   rv   rw   rx   r|   r}   r~   r   r   r   rY   r   r   r   r   r   r   s                           r   categoryContentzSpider.categoryContent   sW   '	9 'c"ggkk++++b+++&&&&&\c7;;;F%FO+CV,,Chhu]h;;G )''f'== ) )CLL--E05['U1X^:S:S58G,,Y[D,,s++C+.6QBB88E*8==D.2WzTZ7O7O$z**UWC )vS00"Sj!hhvjhAAG5<DW\//111"F #%$(#&'-	 E MM%(((( 	9 	9 	97s1vv7788888888	9 
 
 s   FF 
GG  Gc           	      >   |d         }i }g }d}d|vr
t           |z   }t          j        |t                    }d|_        |j        }d|                     |ddd          z   }|                     |d	d
dd          }	|}
|                    ||	d|d|
d           ||d<   |S )Nr   r   r    rS   rU   u   👉z<h1>z</h1>z<span>Pornstars:</span>z</div>r   zhref=".*?">(.*?)</a>u
   💗4K💗)re   	vod_actorvod_directorvod_contentvod_play_fromvod_play_urlri   )r4   rj   rk   rl   rm   r6   rG   r-   )r   r   didrP   ru   playurlres1rw   contentyanuanbofangs              r   detailContentzSpider.detailContent   s    !f*C|W555i433CwJJJ))#/HRSUkll")"  	 	 	  vr   c                    |                     d          }d}|dk    r't          |          dk    r|d         d|d         z   }}t          j        |t                    }|j        }|                     |ddd                              dd          }	t          |	d	          }
|
	                    d
          }|                    d          }t          j
        |d          }|j        dk    r|j        d         }t          j
        |d          }|j        dk    r|j        d         }i }||d<   d|d<   ||d<   t          |d<   |S d S )Nr    r   r   rS   z<videoz</video>r$   r   zhtml.parsersourcesrcF)allow_redirectsi.  LocationparseplayUrlr   header)splitr,   rj   rk   rl   r6   rG   r.   r   r+   headstatus_coderT   )r   flagrY   vipFlagspartsxiutanbefore_httpsafter_httpsrw   url2soupfirst_source	src_valueresponseredirect_urlrP   s                   r   playerContentzSpider.playerContent   sT     Q;;5zzA~~,1!HfuQx6Gk,;@@@C(C++C:qIIQQRVXZ[[D }55D99X..L$((//I}YFFFH#s**'/
;}\5IIIH#s**'/
;F$F7O "F9(F5M&F8M1 ;r   c                    i }g }|sd}|dk    rt            d| d}nt            d| dt          |           d}	 t          j        |t                    }d|_        |j        }t          |d          }	|	                    dd	          }
|
r|
	                    dd
	          }|D ]}|	                    d          }|rd|d         j
        v r|d         d         nd}|	                    d          }|r|d         d         nd}|                    dd	          }|rd|j
        v r|d         nd}|rd|vr
t           |z   }|                    dd	          }|r|j                                        nd}||||d}|                    |           n6# t          $ r)}t          dt          |                      Y d }~nd }~ww xY w||dddd}|S )N1z/search/r   rS   rU   rV   rW   r   rZ   r)   r\   r]   r   r   r^   r_   r`   ra   r    rb   rc   rd   zError in searchContentPage: r   r   r   r   )r4   rt   rj   rk   rl   rm   r6   r   r+   ro   rp   rq   r-   rr   rs   )r   keyquickr   rP   ru   r   rv   rw   rx   r|   r}   r~   r   r   r   rY   r   r   r   r   r   r   s                          r   searchContentPagezSpider.searchContentPage  s]    	D3;;))3)))CC55355T555C!	;\c7;;;F%FO+CV,,Chhu]h;;G )''f'== ) )CLL--E05['U1X^:S:S58G,,Y[D,,s++C+.6QBB88E*8==D.2WzTZ7O7O$z**UWC )vS00"Sj!hhvjhAAG5<DW\//111"F #%$(#&'-	 E MM%(((( 	; 	; 	;9Q99::::::::	; 
 
 s   EF 
GGGc                 0    |                      ||d          S )Nr   )r   )r   r   r   s      r   searchContentzSpider.searchContentE  s    %%c5#666r   c                     |d         dk    r|                      |          S |d         dk    r|                     |          S |d         dk    r|                     |          S d S )Ntypem3u8mediats)	proxyM3u8
proxyMediaproxyTs)r   paramss     r   
localProxyzSpider.localProxyH  sj    &>V##>>&)))F^w&&??6***F^t##<<'''tr   N)r   r   )__name__
__module____qualname__r   r   r   r   rt   rG   rQ   r   r   r   r   r   r   r   r
   r   r   r   r      s                ; ;c ;dg ; ; ; ;z  1  1  1 f3 3 3j  <  :4 4 4l7 7 7    r   r   )rj   bs4r   r0   base.spiderr   sysjsonbase64urllib.parseurllibCrypto.Cipherr   Crypto.Util.Paddingr   binasciipathr-   r4   rl   pmr
   r   r   <module>r      s           				       



             % % % % % %     #   A x x x x xV x x x x xr   