o
    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      zSpider.getNamec                 C      d S Nr   )r   extendr   r   r   init   r
   zSpider.initc              	   C   s   i 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 iS ).Nu   传媒系列1u   AV系列2u   麻豆传媒5u   糖心传媒6u   精东影业7u   蜜桃传媒8u   果冻传媒9u   星空无限10u   天美传媒11u   抠抠传媒12u   星杏吧传媒13u   性视界传媒14u   SA国际传媒15u   其他传媒16u   国产-自拍-偷拍17u   探花-主播-网红18u   日本-中文字幕19Z20Z21Z22Z2324Z25Z27)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   filterZcater   r   r   homeContent   s   ~zSpider.homeContentc                 C   s   i S r   r   r   r   r   r   homeVideoContent   r
   zSpider.homeVideoContentc           	      C   s   t |}|d}g }|D ]`}|dpdgd  }tdd| }|dp,dgd }|rC|dsC|dr?d	| nd
| }|dpJdgd }|rX|dsXd| }||p]d||dped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}z(|  |j}| |}tdd td|D p-dg}|t||t|d	d
W S  tyW }	 zg t|dddd
W  Y d }	~	S d }	~	ww )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textrE   maxr:   findallrG   len	Exception)
r   tidpgr)   r   urlr>   rA   Zpageser   r   r   categoryContent+   s   &
  zSpider.categoryContentc           
   
   C   s   |d }| dr|nd| }zM| |j}t|}|dp"dgd  }|dp.dgd }|rE| dsE| drAd	| nd
| }| |}d||||d|rVd| nddgiW S  tyr }	 z
dg iW  Y d }	~	S d }	~	ww )Nr   r-   r1   z//h1/text()r2   zM//meta[@property="og:image"]/@content|//img[contains(@src,"upload/vod")]/@srcr,   r.   r/   r0   rL   r   u   播放$u   播放$暂无播放地址)r6   r3   r4   vod_contentvod_play_fromvod_play_url)	r<   rQ   rR   r   r7   r8   r9   _extractrV   )
r   arrayrW   rY   r>   r?   titlepicplay_urlrZ   r   r   r   detailContent5   s   

&zSpider.detailContentc                 C   s   | dd}dD ]#}t||}|r+zt|dd }|r$|W   S W q   Y qqtd|tj}|rJtd|d}|rJtj	|dS t
d|D ]}d	|v sZd
|v r^|  S qPdS )Nz\//)zvar player_aaaa\s*=\s*({[^}]+})zplayer_aaaa\s*=\s*({[^}]+})zvar player_data\s*=\s*({[^}]+})rI   rY   z%<iframe[^>]+src="([^"]+souavzy[^"]+)"zurl=([^&]+)z"(https?://[^"]+\.m3u8[^"]*)"souavzyZqrtuvr,   )replacer:   searchjsonloadsgroupIurllibparseunquoterT   )r   htmlpatmrY   srcZm3r   r   r   r_   D   s"   zSpider._extractr   c              	   C   s^   d| dt j| d}z| | |jt|ddddW S    g t|dddd Y S )	Nz.https://www.txsp.my/index.php/vod/search/page/z/wd/rF   i  rJ   rK   rI   r   )rm   rn   quoterE   rQ   rR   rG   )r   keyquickrX   rY   r   r   r   searchContentV   s
   $zSpider.searchContentc                 C   s   |dkri S | drd|v sd|v rdd|ddd	d
dS z$| dr&|nd	| }| | |j}|rAdd|ddd	d
dW S W n   Y dd|ddd	d
dS )Nr   r-   z.m3u8rf   r   r,   zMozilla/5.0zhttps://www.txsp.my/r1   )z
User-AgentRefererOrigin)rn   playUrlrY   headerrI   )r<   r_   rQ   rR   )r   flagidvipFlagsrY   rc   r   r   r   playerContent]   s   zSpider.playerContentc                 C   r   r   r   )r   rY   r   r   r   isVideoFormatk   r
   zSpider.isVideoFormatc                 C   r   r   r   r   r   r   r   manualVideoCheckn   r
   zSpider.manualVideoCheckc                 C   r   r   r   )r   paramr   r   r   
localProxyq   r
   zSpider.localProxyN)r   )__name__
__module____qualname__r	   r   r*   r+   rE   r[   rd   r_   rw   r   r   r   r   r   r   r   r   r      s    

r   )sysurllib.parserm   r:   ri   lxmlr   pathr=   base.spiderr   r   r   r   r   <module>   s
    