U
    i                     @   sX   d dl Z d dlZd dlZd dlZd dlmZ e jd d dl	m
Z
 G dd de
Z
dS )    N)etreez..)Spiderc                   @   sv   e Z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dZdd Zdd Zdd Zdd ZdS )r   c                 C   s   dS )N   糖心次元 selfr   r   ,   /storage/emulated/0/lz/py/sy/糖心次元.pygetName   s    zSpider.getNamec                 C   s   d S Nr   )r   extendr   r   r   init   s    zSpider.initc                 C   sL   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 iS )N1256789101112131415161718Z19Z20Z21Z22Z23Z24Z2527)u   传媒系列u   AV系列u   麻豆传媒u   糖心传媒u   精东影业u   蜜桃传媒u   果冻传媒u   星空无限u   天美传媒u   抠抠传媒u   星杏吧传媒u   性视界传媒u   SA国际传媒u   其他传媒u   国产-自拍-偷拍u   探花-主播-网红u   日本-中文字幕u   日本-无码流出u   日本-高清有码u   日本-东京热u   动漫-番中字u   变态-暗网-同恋u   欧美高清无码u   韩国avclassc                 S   s   g | ]\}}||d qS ))	type_nametype_idr   ).0kvr   r   r   
<listcomp>   s     z&Spider.homeContent.<locals>.<listcomp>)items)r   filtercater   r   r   homeContent   s    6zSpider.homeContentc                 C   s   i S r
   r   r   r   r   r   homeVideoContent   s    zSpider.homeVideoContentc           	      C   s   t |}|d}g }|D ]}|dp.dgd  }tdd| }|dpXdgd }|r|ds|dr~d	| nd
| }|dpdgd }|r|dsd| }||pd||dpdgd  |d q|S )NzD//li[contains(@class,"mb15") and .//a[contains(@href,"/vod/play/")]]zD.//h2/a/@title|.//h3/a/@title|.//p[contains(@class,"txt-ov")]/text() r   z^[a-zA-Z]{2,}\-\d+\s*z.//img/@srchttp//https:https://img1.souavzy.orgz(.//a[contains(@href,"/vod/play/")]/@hrefhttps://www.txsp.my   未知标题z+.//span[contains(@class,"ico-left")]/text())vod_namevod_picvod_remarksvod_id)r   HTMLxpathstripresub
startswithappend)	r   rsprootvideoslstr#   nameimglinkr   r   r   _parse   s    

.zSpider._parsec           
   
   C   s   |dkrd| dnd| d| d}zP|  |j}| |}tdd td|D pZdg}|t||t|d	d
W S  tk
r }	 zg t|dddd
 W Y S d }	~	X Y nX d S )Nr   z*https://www.txsp.my/index.php/vod/type/id/.htmlz/page/c                 S   s   g | ]}t |qS r   )int)r!   nr   r   r   r$   0   s     z*Spider.categoryContent.<locals>.<listcomp>z/page/(\d+)   ?B listpage	pagecountlimittotalr   )	fetchtextrC   maxr8   findallrE   len	Exception)
r   tidpgr&   r   urlr<   r?   pageser   r   r   categoryContent+   s    &
 zSpider.categoryContentc           
   
   C   s   |d }| dr|nd| }z| |j}t|}|dpDdgd  }|dp\dgd }|r| ds| drd	| nd
| }| |}d||||d|rd| nddgiW S  tk
r }	 zdg i W Y S d }	~	X Y nX d S )Nr   r+   r/   z//h1/text()r0   zM//meta[@property="og:image"]/@content|//img[contains(@src,"upload/vod")]/@srcr*   r,   r-   r.   rJ   r   u   播放$u   播放$暂无播放地址)r4   r1   r2   vod_contentvod_play_fromvod_play_url)	r:   rO   rP   r   r5   r6   r7   _extractrT   )
r   arrayrU   rW   r<   r=   titlepicplay_urlrY   r   r   r   detailContent5   s    

&zSpider.detailContentc                 C   s   | dd}dD ]L}t||}|rz&t|dd }|rH|W   S W q   Y qY qX qtd|tj}|rtd|d}|rtj	|dS t
d|D ]}d	|ksd
|kr|  S qdS )Nz\//)zvar player_aaaa\s*=\s*({[^}]+})zplayer_aaaa\s*=\s*({[^}]+})zvar player_data\s*=\s*({[^}]+})rG   rW   z%<iframe[^>]+src="([^"]+souavzy[^"]+)"zurl=([^&]+)z"(https?://[^"]+\.m3u8[^"]*)"souavzyZqrtuvr*   )replacer8   searchjsonloadsgroupIurllibparseunquoterR   )r   htmlpatmrW   srcZm3r   r   r   r^   D   s&       
zSpider._extractr   c              	   C   sd   d| dt j| d}z$| | |jt|ddddW S    g t|dddd Y S X d S )	Nz.https://www.txsp.my/index.php/vod/search/page/z/wd/rD   i  rH   rI   rG   r   )rl   rm   quoterC   rO   rP   rE   )r   keyquickrV   rW   r   r   r   searchContentV   s
    $zSpider.searchContentc                 C   s   |dkri S | dr<d|ks&d|kr<dd|ddd	d
dS zH| drL|nd	| }| | |j}|rdd|ddd	d
dW S W n   Y nX dd|ddd	d
dS )Nr   r+   z.m3u8re   r   r*   zMozilla/5.0zhttps://www.txsp.my/r/   )z
User-AgentRefererOrigin)rm   playUrlrW   headerrG   )r:   r^   rO   rP   )r   flagidvipFlagsrW   rb   r   r   r   playerContent]   s    zSpider.playerContentc                 C   s   d S r
   r   )r   rW   r   r   r   isVideoFormatk   s    zSpider.isVideoFormatc                 C   s   d S r
   r   r   r   r   r   manualVideoCheckn   s    zSpider.manualVideoCheckc                 C   s   d S r
   r   )r   paramr   r   r   
localProxyq   s    zSpider.localProxyN)r   )__name__
__module____qualname__r	   r   r(   r)   rC   rZ   rc   r^   rv   r~   r   r   r   r   r   r   r   r      s   

r   )sysurllib.parserl   r8   rh   lxmlr   pathr;   base.spiderr   r   r   r   r   <module>   s    