
    Z}iz                     6   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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ddlZej                            d           dZddiZ G d de
          Z
dS )u   

作者 丢丢喵 🚓 内容均从互联网收集而来 仅供交流学习使用 版权归原创者所有 如侵犯了您的权益 请通知作者 将及时删除侵权内容
                    ====================Diudiumiao====================

    )unpad)pad)unquote)ARC4)quote)Spider)AES)datetimeBeautifulSoup)	b64decodeNz..zhttps://free4kporns.comz
User-AgentzlMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Z	d Zd Zd Zd Zd Zd Z	d Zd Zd Zd Zd ZddZd ZdS ) r   c                     dS )N   首页 selfs    1   /storage/emulated/0/纯福利/PY1/乐哥欧美.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.isVideoFormat1   r   r   c                     d S r   r   r   s    r   manualVideoCheckzSpider.manualVideoCheck4   r   r   c                 6   dg i}|                                  }|                     |j                  }|                     |          }|D ]N}|                    d          }|D ]4}|                     |          }	|	r|d                             |	           5O|S )Nclassli)_fetch_homepage_parse_htmltext_extract_nav_linksfind_all_process_nav_itemappend)
r   filterresultdetaildocsoupssoupvodsvoditems
             r   homeContentzSpider.homeContent7   s    2%%''v{++'',, 	1 	1D==&&D 1 1--c22 17O**40001 r   c                 Z    t          j        t           dt                    }d|_        |S )Nz/cn/r   headersutf-8)requestsgetxurlheaderxencoding)r   r-   s     r   r$   zSpider._fetch_homepageD   s(    T---AAA!r   c                 "    t          |d          S Nlxmlr   r   	html_texts     r   r%   zSpider._parse_htmlI       Y///r   c                 0    |                     dd          S )Nulz%nav-main__links nav-main__links--leftclass_)r(   )r   r.   s     r   r'   zSpider._extract_nav_linksL   s    ||D)P|QQQr   c                     |j                                         }dg}||v rd S |                    d          d         }||dS )Nr   ahref)type_id	type_name)r&   stripfind)r   r2   name
skip_namesids        r   r)   zSpider._process_nav_itemO   sL    x~~Z
:4XXc]]6"D111r   c                     d S r   r   r   s    r   homeVideoContentzSpider.homeVideoContentW   r   r   c                    |                      |          }|                     ||          }|                     |          }|                     |j                  }|                     |          }	|                     |	|          }
|
S r   )_get_page_number_build_category_url_fetch_category_pager%   r&   _extract_videos_build_category_result)r   cidpgr+   extpager   r-   r.   videosr,   s              r   categoryContentzSpider.categoryContentZ   s    $$R((&&sD11**3//v{++%%c**,,VR88r   c                 (    |rt          |          S dS )N   )int)r   r[   s     r   rU   zSpider._get_page_numberc   s     	r77N1r   c                     |                     d          }|dk    rt           | S t           |d          dt          |           dS )Nz.htmlra   r   z/page/)splitr;   str)r   rZ   r]   fenges       r   rV   zSpider._build_category_urli   sP    		'""199>C>>!<E!H<<CII<<<<r   c                 J    t          j        |t                    }d|_        |S Nr6   r8   r9   r:   r<   r=   )r   r   r-   s      r   rW   zSpider._fetch_category_pagep   "    #w777!r   c                 "    t          |d          S r?   r   rA   s     r   r%   zSpider._parse_htmlu   rC   r   c                     g }|                     dd          }|D ]J}|                     dd          }|D ].}|                     |          }|r|                    |           /K|S )Ndivz*list-global list-global--small list-videosrF   zlist-global__item)r(   _process_video_itemr*   )r   r.   r^   r/   r0   r1   r2   videos           r   rX   zSpider._extract_videosx   s    U+WXX 	) 	)D==/B=CCD ) )0055 )MM%((() r   c                     |                     dd          }|j                                        }|                     d          d         }|                     d          d         }|||dS )	Npzlist-global__titlerF   rI   rJ   imgsrc)vod_idvod_namevod_pic)rN   r&   rM   )r   r2   namesrO   rQ   pics         r   rn   zSpider._process_video_item   sk    %9::z!!ZZ__V$hhuooe$  	r   c                     ||ddddS )Ni'  Z   i?B )listr]   	pagecountlimittotalr   )r   r^   r[   s      r   rY   zSpider._build_category_result   s       	r   c                     |d         }|                      |          }|                     |j                  }|                     |          }|                     ||          }|                     |          }|S )Nr   )_fetch_detail_pager%   r&   _extract_video_url_build_video_list_build_detail_result)r   idsdidr-   r.   bofangr^   r,   s           r   detailContentzSpider.detailContent   ss    !f((--v{++((--''V44**622r   c                 J    t          j        |t                    }d|_        |S rh   ri   )r   r   r-   s      r   r   zSpider._fetch_detail_page   rj   r   c                 "    t          |d          S r?   r   rA   s     r   r%   zSpider._parse_html   rC   r   c                 @    |                     dd          }|d         S )Nmeta
contentUrl)itempropcontent)rN   )r   r.   bofangss      r   r   zSpider._extract_video_url   s"    ((6L(99y!!r   c                     |d|dgS )Nu   在线观看)rt   vod_play_fromvod_play_urlr   )r   r   r   s      r   r   zSpider._build_video_list   s    +"   	r   c                 
    d|iS )Nr{   r   )r   r^   s     r   r   zSpider._build_detail_result   s    r   c                 <    i }d|d<   d|d<   ||d<   t           |d<   |S )Nr   parse playUrlr   header)r<   )r   flagrQ   vipFlagsr,   s        r   playerContentzSpider.playerContent   s2    wyu"xr   c                     d S r   r   r   keyquickr[   s       r   searchContentPagezSpider.searchContentPage   r   r   1c                 0    |                      ||d          S )Nr   )r   r   s       r   searchContentzSpider.searchContent   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.localProxy   sj    &>V##>>&)))F^w&&??6***F^t##<<'''tr   N)r   )__name__
__module____qualname__r   r   r   r    r4   r$   r%   r'   r)   rS   r_   rU   rV   rW   rX   rn   rY   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )   s                   
0 0 0R R R2 2 2      = = =  
0 0 0	 	 		 	 	      
0 0 0" " "           7 7 7 7    r   r   )__doc__Crypto.Util.Paddingr   r   urllib.parser   Crypto.Cipherr   r   base.spiderr   r	   r
   bs4r   base64r   urllib.requesturllibbinasciir9   jsontimesysreospathr*   r;   r<   r   r   r   <module>r      s    & % % % % % # # # # # #                                                                     



 				 				        Ab b b b bV b b b b br   