U
    ¬šÓh¢:  ã                   @   s   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addiaG dd„ de
ƒZ
dS )uÿ   

ä½œè€… ä¸¢ä¸¢å–µæŽ¨è ðŸš“ å†…å®¹å‡ä»Žäº’è”ç½‘æ”¶é›†è€Œæ¥ ä»…ä¾›äº¤æµå­¦ä¹ ä½¿ç”¨ ç‰ˆæƒå½’åŽŸåˆ›è€…æ‰€æœ‰ å¦‚ä¾µçŠ¯äº†æ‚¨çš„æƒç›Š è¯·é€šçŸ¥ä½œè€… å°†åŠæ—¶åˆ é™¤ä¾µæƒå†…å®¹
                    ====================Diudiumiao====================

é    )Úunpad)Úpad)Úunquote)ÚARC4)Úquote)ÚSpider)ÚAES)Údatetime)ÚBeautifulSoup)Ú	b64decodeNz..zhttps://www.4kvm.netz
User-AgentzÄMozilla/5.0 (Linux; U; Android 8.0.0; zh-cn; Mi Note 2 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/MiuiBrowser/10.1.1c                   @   s€   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zdeed
œdd„Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zd dd„Zdd„ ZdS )!r   c                 C   s   dS )Nõ   é¦–é¡µ© ©Úselfr   r   õ(   /storage/emulated/0/lz/py/sy/4Kå½±é™¢.pyÚgetName-   s    zSpider.getNamec                 C   s   d S ©Nr   )r   Úextendr   r   r   Úinit0   s    zSpider.initc                 C   s   d S r   r   )r   Úurlr   r   r   ÚisVideoFormat3   s    zSpider.isVideoFormatc                 C   s   d S r   r   r   r   r   r   ÚmanualVideoCheck6   s    zSpider.manualVideoCheckÚ )Ústart_index1Ú
end_index2c              
   C   sN  |dkr\g }|  |¡}|dkr"qt|  ||t|ƒ ¡}	|	dkr@qt||t|ƒ |	… }
| |
¡ | ||
 | d¡}qt|ƒdkrVd}tt|ƒƒD ]²}t ||| ¡}d}|D ]|}t d|d ¡}|rÒ| d¡}nd}d|d kr
|d|d › d	|› t	› |d › 7 }q®|d|d › d	|› |d › 7 }q®|dd … }|| d
 }q’|d d… }|S dS n:|  |¡}|dkrtdS |  ||t|ƒ ¡}	|	dkr–dS |dkrÀ||t|ƒ |	… }
|
 dd¡S |dkrþ||t|ƒ |	… }
t ||
¡}|rþd 
|¡}|S |dkrJ||t|ƒ |	… }
t ||
¡}|rJdd„ |D ƒ}d
 
|¡}|S d S )Né   éÿÿÿÿr   r   z(?:^|[^0-9])(\d+)(?:[^0-9]|$)é   Úhttpú#ú$z$$$éýÿÿÿú\ú é   c                 S   s   g | ]
}|› ‘qS r   r   )Ú.0Úitemr   r   r   Ú
<listcomp>r   s     z.Spider.extract_middle_text.<locals>.<listcomp>)ÚfindÚlenÚappendÚreplaceÚrangeÚreÚfindallÚsearchÚgroupÚxurlÚjoin)r   ÚtextZ	start_strZend_strÚplr   r   ZplxZstart_indexÚ	end_indexZmiddle_textÚpurlÚiÚmatchesÚoutputÚmatchZmatch3ÚnumberZjgZnew_listr   r   r   Úextract_middle_text9   sf    


&"







zSpider.extract_middle_textc                    s°   dg i}t jttd}d|_|j}t|dƒ}|jddd}|D ]l}| d¡}|D ]X}	|	j ¡ ‰ t	‡ fd	d
„dD ƒƒrvqP|	 
d¡d }
d|
kr”t|
 }
|d  |
ˆ dœ¡ qPq>|S )NÚclass©r   Úheadersúutf-8ÚlxmlÚulzmain-header©Úclass_Úlic                 3   s   | ]}|ˆ kV  qd S r   r   )r%   Úkeyword©Únamer   r   Ú	<genexpr>†   s     z%Spider.homeContent.<locals>.<genexpr>)r   u	   ç”µè§†å‰§u   é«˜åˆ†ç”µå½±u   å½±ç‰‡ä¸‹è½½u   çƒ­é—¨æ’­æ”¾ÚaÚhrefr   )Útype_idÚ	type_name)ÚrequestsÚgetr1   ÚheaderxÚencodingr3   r
   Úfind_allÚstripÚanyr(   r*   )r   ÚfilterÚresultÚdetailÚresÚdocÚsoupsÚsoupÚvodsÚvodÚidr   rG   r   ÚhomeContentv   s"    


zSpider.homeContentc                 C   s´   g }t jttd}d|_|j}t|dƒ}|jddd}|D ]l}| d¡d }|jd	d
d}| d¡d }	| d¡d }
|jd	dd}|j 	¡ }|	||
|dœ}| 
|¡ q:d|i}|S )Nr>   r@   rA   Úarticlezitem moviesrC   ÚimgÚaltÚdivÚposterrJ   rK   ÚsrcÚrating©Úvod_idÚvod_nameÚvod_picÚvod_remarksÚlist)rN   rO   r1   rP   rQ   r3   r
   rR   r(   rS   r*   )r   ÚvideosrW   rX   rY   rZ   r]   rH   Úidsr^   ÚpicÚremarksÚremarkÚvideorV   r   r   r   ÚhomeVideoContent‘   s*    

üzSpider.homeVideoContentc                 C   s¶  i }g }d|krŒd|kr¶|  d¡}tj|d td}d|_|j}	t|	dƒ}
|
jddd	}|D ]T}|j ¡ }| 	d
¡d }|  
t|	ƒddd¡ dd¡}d}||||dœ}| |¡ q^nÔ|rÄt|ƒ}nd}|› dt|ƒ› }tj|td}d|_|j}	t|	dƒ}
|
jddd	}|D ]x}| 	d¡d }|j	ddd	}| 	d
¡d }| 	d¡d }|j	ddd	}|j ¡ }|d | ||d|dœ}| |¡ qnâ|rœt|ƒ}nd}|› dt|ƒ› }tj|td}d|_|j}	t|	dƒ}
|
jddd	}|D ]„}| d¡}|D ]n}| 	d¡d }|j	ddd	}| 	d
¡d }| 	d¡d }|j	ddd	}|j ¡ }||||dœ}| |¡ qúqèt|ƒdk r‚d}nd }d!|i}||d"< ||d#< d$|d%< t|ƒ|d&< |S )'NÚmoviesú@r   r>   r@   rA   rc   zse-crC   rJ   rK   z$<meta property="og:image"  content="ú"z#038;r   õ   æŽ¨èrg   r   z/page/r`   zitem tvshowsra   rb   rd   re   ÚupdateÚfolder©rh   ri   rj   Úvod_tagrk   zanimation-2rf   é   i'  rl   ÚpageÚ	pagecountiç  ÚtotalÚlimit)ÚsplitrN   rO   rP   rQ   r3   r
   rR   rS   r(   r<   Ústrr+   r*   Úintr)   )r   ÚcidÚpgrU   ÚextrV   rm   ÚfengerW   rX   rY   rZ   r]   rH   r^   ro   rq   rr   r}   r   rn   rp   r&   r\   r~   r   r   r   ÚcategoryContent²   sš    



ü



û



üzSpider.categoryContentc                 C   s<  |d }i }g }d}d}d|krÐt j|td}d|_|j}t|dƒ}d|  |dd	d¡ }	|  |d
dd¡}
|  |ddd¡}t |¡}|D ]6}t	|d ƒ}|d › d|
› }|| d | d }q†|d d… }d}nLt j|td}d|_|j}t|dƒ}d|  |dd	d¡ }	|  |ddd¡}d}| 
||	||dœ¡ ||d< |S )Nr   r   rt   r>   r@   rA   u   å‰§æƒ…ä»‹ç»ðŸ“¢z"<meta name="description" content="rv   zpostid:ú,zvideourls:[z],rH   r   ru   r    r   r   u   4Kå½±é™¢zdata-postid='ú')rh   Úvod_contentÚvod_play_fromÚvod_play_urlrl   )rN   rO   rP   rQ   r3   r
   r<   ÚjsonÚloadsr‚   r*   )r   rn   ÚdidrV   rm   ZxianluZbofangrX   rY   ÚcontentZpostidZres1Údatar]   rH   r^   r   r   r   ÚdetailContent%  sF    


üzSpider.detailContentc                 C   s¤  d|krÎ|  d¡}t› d|d › d|d › }tj|td}d|_|j}|  |dd	d¡}|  |d
d	d¡}	|  |dd	d¡}
|  |dd	d¡}|  |dd	d¡}||	|
||dœ}tj|t|d}t	 
|j¡}|d }n®t› d|› d}tj|td}d|_|j}|  |dd	d¡}|  |d
d	d¡}	|  |dd	d¡}
|  |dd	d¡}|  |dd	d¡}||	|
||dœ}tj|t|d}t	 
|j¡}|d }i }d|d< d|d< ||d< t|d< |S )Nru   z/artplayer?id=r   z&source=0&ep=r   r>   r@   z
expires: 'rŠ   z	client: 'znonce: 'ztoken: 'z	source: ')ÚexpiresÚclientÚnonceÚtokenÚsource)r   r?   rŽ   r   z/artplayer?mvsource=0&id=z	&type=hlsÚparser   ÚplayUrlÚheader)r   r1   rN   rO   rP   rQ   r3   r<   ÚpostrŽ   r   )r   Úflagr^   ÚvipFlagsr‡   r   rW   rX   r”   r•   r–   r—   r˜   ÚpayloadÚresponseZresponse_datarV   r   r   r   ÚplayerContentY  sX    
û
ûzSpider.playerContentc                 C   s  i }g }t › d|› }tj|td}d|_|j}t|dƒ}	|	jddd}
|
D ]¤}|jddd}| d	¡d
 }d|kr¸| d¡d }| d¡d }d}|d | ||d|dœ}| 	|¡ qL| d¡d }| d¡d }d}||||dœ}| 	|¡ qL||d< ||d< d|d< d|d< d|d< |S )Nz/xssearch?s=r>   r@   rA   rc   zresult-itemrC   ÚtitlerJ   rK   rt   ra   rb   re   rw   ru   ry   rz   rg   rl   r}   r   r~   éZ   r€   i?B r   )
r1   rN   rO   rP   rQ   r3   r
   rR   r(   r*   )r   ÚkeyÚquickr…   rV   rm   r   rW   rX   rY   rZ   r]   rn   r^   rH   ro   rq   rr   r   r   r   ÚsearchContentPage“  sJ    

ûüzSpider.searchContentPageÚ1c                 C   s   |   ||d¡S )Nr§   )r¦   )r   r¤   r¥   r…   r   r   r   ÚsearchContentÊ  s    zSpider.searchContentc                 C   sF   |d dkr|   |¡S |d dkr,|  |¡S |d dkrB|  |¡S d S )NÚtypeÚm3u8ÚmediaÚts)Z	proxyM3u8Ú
proxyMediaZproxyTs)r   Úparamsr   r   r   Ú
localProxyÍ  s    


zSpider.localProxyN)r   r   )r§   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r‚   r<   r_   rs   rˆ   r“   r¡   r¦   r¨   r¯   r   r   r   r   r   )   s   =!s4:7
r   )Ú__doc__ÚCrypto.Util.Paddingr   r   Úurllib.parser   ÚCrypto.Cipherr   r   Úbase.spiderr   r   r	   Úbs4r
   Úbase64r   Úurllib.requestÚurllibÚbinasciirN   rŽ   ÚtimeÚsysr-   ÚosÚpathr*   r1   rP   r   r   r   r   Ú<module>   s6    ÿ