
    iM                         d dl Z d dlZd dlZd dlZd dlZej
                  j                  d       d dlmZ  G d de      Ze	dk(  ryy)    Nz..)Spiderc                       e Zd Zd ZddZd Zd Zd Zd Zd Z	d Z
d	 Zdd
Zd Zd Zd Zd Zd Zd Zed        Zy)r   c                      y)N
JieYingShi selfs    )   /storage/emulated/0/lz/py/sy/界影视.pygetNamezSpider.getName   s        c                 2    d| _         d| _        ddi| _        y )Nzhttps://www.hkybqufgh.comz/https://json.doube.eu.org/error/4gtv/index.m3u8
User-AgentoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36)home_url	error_urlheaders)r	   extends     r
   initzSpider.init   s"    3J O
r   c                     g S Nr   r   s    r
   getDependencezSpider.getDependence   s    	r   c                      y r   r   )r	   urls     r
   isVideoFormatzSpider.isVideoFormat       r   c                      y r   r   r   s    r
   manualVideoCheckzSpider.manualVideoCheck    r   r   c                 *    ddddddddddd	d
dgiS )Nclass1u   电影)type_id	type_name2u	   电视剧4u   动漫3u   综艺r   )r	   filters     r
   homeContentzSpider.homeContent#   s4    (3+6(3(3	
  	r   c                 D    | j                  | j                        }|dddS Nr   listparsejx)get_datar   )r	   as     r
   homeVideoContentzSpider.homeVideoContent+   s!    MM$--(AQ//r   c                 Z    | j                   d| d| z   }| j                  |      }|dddS )Nz/vod/show/id/z/page/r   r*   )r   r.   )r	   tidpgr&   r   r   datas          r
   categoryContentzSpider.categoryContent0   s8    mmcU&==}}S!q22r   c                 :    |d   }| j                  |      }|dddS r)   )get_detail_data)r	   idsvidr4   s       r
   detailContentzSpider.detailContent5   s(    !f##C(q22r   c                 |    t        |      dkD  rg dddS | j                  d| z   }| j                  |      }|dddS )N   r   r*   z/vod/search/)intr   r.   )r	   keyquickr3   r   r4   s         r
   searchContentzSpider.searchContent:   sJ    r7Q;!44mmSE22}}S!q22r   c                 F    | j                  |      }|| j                  dddS )Nr<   r   )r   headerr,   r-   )get_play_datar   )r	   flagidvipFlagsr   s        r
   playerContentzSpider.playerContentB   s%      $dllQaHHr   c                      y r   r   )r	   paramss     r
   
localProxyzSpider.localProxyF   r   r   c                      y)Nu   正在Destroyr   r   s    r
   destroyzSpider.destroyI   s    r   c                 @   g }	 t        j                  || j                        }|j                  dk7  r|S t	        j
                  d|j                        }t	        j
                  d|j                        }t	        j
                  d|j                        }t	        j
                  d|j                        }t        t        |            D ]$  }|j                  ||   ||   ||   ||   d       & 	 |S # t         j                  $ r}	t        |	       Y d }	~	|S d }	~	ww xY w)Nr      z\\"vodId\\":(.*?),z\\"vodName\\":\\"(.*?)\\"z\\"vodPic\\":\\"(.*?)\\"z\\"vodRemarks\\":\\"(.*?)\\")vod_idvod_namevod_picvod_remarks)requestsgetr   status_coderefindalltextrangelenappendRequestExceptionprint)
r	   r   r4   resvod_id_s
vod_name_s	vod_pic_svod_remarks_sies
             r
   r.   zSpider.get_dataP   s    	,,sDLL9C#%zz"7BH$@#((KJ

#>IIJJ'FQM3x=)&qk *1(|#0#3	  *  (( 	!HH	s   1C4 B;C4 4DDDc                 L   | j                   d| z   }t        t        t        j                         dz              }| j	                  |d| d|       }	 t        j                  ||      }|j                  dk7  rg S |j                         d   }g }|d   D ]%  }|d	   }	|d
   }
|j                  |	 d| d|
        ' |d   |d   |d   |d   |d   |d   |d   |d   |d   ddj                  |      d}|gS # t
        j                  $ r}t        |       Y d }~g S d }~ww xY w)Nz(/api/mw-movie/anonymous/video/detail?id=  id=(&key=cb808529bae6b6be45ecfab29a4889bc&t=rN   rO   r4   episodeListnamenid$-vodClassvodIdvodName
vodRemarksvodYearvodAreavodActorvodDirector
vodContentu   默认#)r"   rP   rQ   rS   vod_yearvod_area	vod_actorvod_directorvod_contentvod_play_fromvod_play_url)r   strr=   timeget_headersrT   rU   rV   jsonr\   joinr]   r^   )r	   r9   r   tr   r_   rd   urlsiirk   rl   r4   re   s                r
   r7   zSpider.get_detail_dataf   sQ   mm HNNDIIK$&'(""1C50XYZX[&\]	,,sG4C#%	
6"AD&&zitfAcU!C512 '
 z]G*iL iLiLz] !- 0 !) #D 6M(( 	!HH		s   'C: =A<C: :D#DD#c           	         |j                  d      }|d   }|d   }| j                  d| d| z   }t        t        t	        j                         dz              }| j                  |d| d| d|       }	 t        j                  ||	      }|j                  d
k7  r| j                  S |j                         d   d   d   d   S # t        j                  $ r }	t        |	       Y d }	~	| j                  S d }	~	ww xY w)Nrn   r   r<   z0/api/mw-movie/anonymous/v2/video/episode/url?id=z&nid=rg   rh   ri   rN   rO   r4   r+   r   )splitr   r   r=   r   r   rT   rU   rV   r   r   r]   r^   )
r	   playinfo_id_pidr   r   r   r_   re   s
             r
   rC   zSpider.get_play_data   s    zz#1gAwmm PQTPUUZ[_Z`aaDIIK$&'(""1C5dV;cdecf&gh	,,sG4C#%~~%88:f%f-a077(( 	!HH~~	s   61C (C C7C22C7c                     t        j                  t        j                  |j                               j	                         j                               j	                         }dd|d| dd}|S )Nr   z!application/json, text/plain, */*zA"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"zhttps://www.hkybqufgh.com/)r   Acceptsignz	sec-ch-uar   referer)hashlibsha1md5encode	hexdigest)r   re   r   r   s       r
   r   zSpider.get_headers   s]    ||GKK
3==?FFHISSUO9\3
 r   N) )r    )__name__
__module____qualname__r   r   r   r   r   r'   r0   r5   r:   r@   rG   rJ   rL   r.   r7   rC   staticmethodr   r   r   r
   r   r      sh    
0
3
3
3I,@   r   r   __main__)
r   rW   sysr   rT   pathr\   base.spiderr   r   r   r   r
   <module>r      sJ   
  	 
     TV Tn z r   