
    2i'                         d dl Z d dlZd dlZd dlZd dlZd dlmZmZ e j	        
                    d           d dlmZ  G d de          ZdS )    N)	b64decode	b64encodez..)Spiderc                   t    e 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ddZdS )r    c                 ~    d| _         d| _        d| _        d| j         dz   | j         dd| _        d| _        d	| _        d S )
Nhttps://beeg.comzhttps://store.externulls.comzhttps://video.externulls.comzyMozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36/zzh-CN,zh;q=0.9,en;q=0.8)
User-AgentRefererOriginzAccept-Language      )hostapi_host
video_hostheaderstimeoutretries)selfextends     4   /storage/emulated/0/纯福利/py1/七哥大洋马.pyinitzSpider.init   sP    &	68 Vy3i8	
 
     c                     dS )NBeeg r   s    r   getNamezSpider.getName   s    vr   c                     dS )NTr   )r   urls     r   isVideoFormatzSpider.isVideoFormat   s    tr   c                     dS )NFr   r   s    r   manualVideoCheckzSpider.manualVideoCheck   s    ur   c                     d S Nr   r   s    r   destroyzSpider.destroy"   s    r   c                 8    i }ddddddddddd	dg}||d
<   |S )NlatestzLatest Updates)type_id	type_namechannelsChannels	pornstars	Pornstars
categories
Categoriesclassr   )r   filterresultclassess       r   homeContentzSpider.homeContent%   sK     /?@@"<<#+>>$<@@	
 "wr   c                 2    |                      ddd i           S )Nr)      )categoryContentr   s    r   homeVideoContentzSpider.homeVideoContent0   s    ##Har:::r   c                    i }g }d}t          |          dz
  |z  }|dk    r%| j         d| d| }	|                     |	          }n|                    | j                  sd|v rY|                    d          r|}	n| j         d| d	| d| }	t	          j        d
d| |	          }	|                     |	          }n$|dv r | j         d}	|                     |	|          }||d<   ||d<   d|d<   ||d<   d|d<   |S )N0   r8   r)   z/facts/tag?id=27173&limit=z&offset=z
/facts/taghttp/facts/tag?slug=z&limit=z
offset=\d+zoffset=)r,   r.   r0   z,/tag/facts/tags?get_original=true&slug=indexlistpagei'  	pagecountlimiti?B total)intr   _fetch_video_list
startswithresub_fetch_section_list)
r   tidpgr3   r   r4   videosrB   offsetr!   s
             r   r9   zSpider.categoryContent3   sW   b''A+&(??]UUeUUVUUC++C00FF^^DM** 		8lc.A.A~~f%% \[[[[E[[SY[[&(:&(:(:C@@C++C00FF;;;]PPPC--c377Fvv"{w wr   1c                 
    dg iS )Nr?   r   )r   keyquickrK   s       r   searchContentzSpider.searchContentN   s    |r   c                    i }|d         }|                     d                              d          d         }| j         d| }d| }d| d}d}	 |                     || j        	          }	t          j        |	j                  }
|
                    d
i                               dg           }|r|d                             d|          }|
                    dg           }|D ]W}|                    dg           }|r=|d                             d          dk    r|d                             dd          } nXn#  Y nxY wd| 	                    |           }|||d|d|d}|g|d<   |S )Nr   r
   /facts/file/zBeeg Video %https://thumbs.externulls.com/videos//0.webp?size=480x270r   r   filedatacd_valuetags	td_column
tg_captiontd_valueu   播放$r   )vod_idvod_namevod_picvod_remarksvod_contentvod_play_fromvod_play_urlr?   )
rstripsplitr   fetchr   jsonloadstextgete64)r   idsr4   r!   video_idapi_urltitlepicdescrrZ   	file_datar\   tagtag_dataplay_urlvods                    r   detailContentzSpider.detailContentQ   s   !f::c??((--b1]::::(h((ThTTT	

7DL
99A:af%%D,,00<<I <!!((U;;88FB''D  7762..  < < L L#A;??:r::DE1TXXh//11 #$
 
 vs   C-E Ec                    i }	 |                      |          }| j         d| }|                     || j                  }t	          j        |j                  }d }	|                    di           }
|
                    di           }d}d}|                                D ]U\  }}|	                    d          r;d|v r	 t          |                    dd                    }||k    r|}|}N#  Y RxY wV|r| j         d	| }	|	sm|
                    d
i                               dg           }|rA|                    d d           |d                             d          }|r| j         d	| }	|	sS|
                    di           }|                                D ](\  }}|	                    d          r| j         d	| }	 n)|	rJ|		                    d          r|	                    dd          }	d|d<   |	|d<   | j        d         ddd|d<   nd|d<   d| |d<   | j        |d<   nE# t          $ r8}d|d<   |rd|                      |           nd|d<   | j        |d<   Y d }~nd }~ww xY w|S )NrU   rX   rY   hls_resourcesr   r   fl_cdn_multir
   	qualitiesh264c                 H    t          |                     dd                    S )Nqualityr   )rD   rm   )xs    r   <lambda>z&Spider.playerContent.<locals>.<lambda>   s    QUU9a5H5H1I1I r   T)rP   reverser!   	resourceszhttps://video.externulls.com//z.com//z.com/parser   zhttps://beeg.com/r	   )r   r   r   headerr8   )d64r   ri   r   rj   rk   rl   rm   itemsrF   rD   replacer   sort	Exception)r   flagidvipFlagsr4   rp   rq   ru   rZ   	final_urlfile_objhls_resmax_respathkvresr   pr   es                        r   playerContentzSpider.playerContentz   s!   @	,xx||H>>H>>G

7DL
99A:af%%DIxx++H ll?B77GGD 	! 	!1<<	** !!||X!!!))Ir":":;;==&)G#$D DD!  8#7777	  ?$LLb99==fbII	 ?NN'I'ISWNXXX!!((//A>&>&>1&>&>)  $LLb99	%OO--  DAq||I.. '+$<$<$<$<	  0''(HII E ) 1 1(G D DI"#w )u"&,|"<20$ $x   #$w >H > >u#'<x  	, 	, 	,F7OBDL>>>>"F5M#|F8	,
 s1   B;H,  -C.-H, .C20D;H, ,
I.6.I))I.c                 z   g }	 |                      || j                  }t          j        |j                  }t          |t                    r|ng }|D ]}	 |                    di           }|                    d          }|s1t          |          }	|                    dg           }
|
r2t          |
          dk    r|
d                             d          }|r|}	d| d}t          |                    d	d
                    }|
                    | j         d| |	||d           #  Y xY wn#  Y nxY w|S )NrX   rY   r   rZ   r   r[   rV   rW   fl_durationr   r
   )r`   ra   rb   rc   )ri   r   rj   rk   rl   
isinstancer?   rm   strlenappendr   )r   r!   rL   ru   rZ   r   elem	file_inforp   rr   rv   val	thumbnaildurations                 r   rE   zSpider._fetch_video_list   ss   	

3
55A:af%%D&tT22:DDE ! !! $ 4 4I(}}T22H#-XMME )fb 9 9I  ,S^^a%7%7'l..z::+ f f f fI"9==#C#CDDHMM%)Y";";";";$)#,'/	# #     !+!, 	s1   AD4 -D,D4 B&D,+D4 ,D0.D4 4D8c           	      (   g }	 |                      || j                  }t          j        |j                  }d}|dk    rd}n|dk    rd}n|dk    rd}|                    |g           }|D ]}	 |                    d	d          }	|                    d
d          }
d}|                    dg           }|r$|d                             dd          }|rd| d}| j         d|
 d}|                    ||	|ddd           #  Y xY wn#  Y nxY w|S )NrX   r   r0   otherr,   productionsr.   humantg_nametg_slugthumbsrT   r   z%https://thumbs.externulls.com/photos/z/to.webpr>   z&limit=48&offset=0folderu   分类)r`   ra   rb   vod_tagrc   )ri   r   rj   rk   rl   rm   r   r   )r   r!   section_typerL   ru   rZ   
target_keyr   r   rr   slugr   r   thumb_idr`   s                  r   rI   zSpider._fetch_section_list   sy   !	

3
55A:af%%DJ|++'ZZ++-ZZ,,7jHHZ,,E ! !! HHY33E88Ir22D "I!XXh33F c#)":>>$#;#;# c(bPX(b(b(bI $WWtWWWFMM"($)#,#+'/# #     !+!, 	s%   A+D 0BDD DD Dc                 h    t          |                                                                          S r&   )r   encodedecode)r   rl   s     r   rn   z
Spider.e64  s$    ''..000r   c                 h    t          |                                                                          S r&   )r   r   r   )r   encoded_texts     r   r   z
Spider.d64	  s(    ,,..//66888r   Nc                 0   dd l }dd l}|j        |_        n#  Y nxY w|| j        }|| j        }t          | j        dz             D ]B}	 |                    ||||d          }d|_	        |c S #  t          j        d           Y @xY wt          d          )Nr   r8   F)paramsr   r   verifyzutf-8zFetch failed)requestsssl_create_unverified_context_create_default_https_contextr   r   ranger   rm   encodingtimesleepr   )	r   r!   r   r   r   r   r   _resps	            r   ri   zSpider.fetch  s    141OS..?dlG?dlGt|a'(( 	" 	"A"||CQXaf|gg '!DJqMMMMM'''s    	"A..B)r   )rN   )NNN)__name__
__module____qualname__r   r   r"   r$   r'   r6   r:   r9   rR   r{   r   rE   rI   rn   r   ri   r   r   r   r   r      s                  	 	 	; ; ;  6   ' ' 'RD D DL  @$ $ $L1 1 19 9 9( ( ( ( ( (r   r   )sysr   rj   rG   urllib.parseurllibbase64r   r   r   r   base.spiderr   r   r   r   <module>r      s    



   				     ' ' ' ' ' ' ' '          M( M( M( M( M(V M( M( M( M( M(r   