
    `iB                     2   S SK r S SKJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S S	KJr  S
rSrSr\" 5       R)                  \5      rSrSr\S    S4rSrSr\S    S4rSrSrSrSrS r S r!S r"S r#S r$S r%S$S jr&S r'S r(S  r)S! r*S" r+S# r,g)%    N)siteManager)cGui)
cHosterGui)cInputParameterHandler)cOutputParameterHandler)cRequestHandler)cParser)cUtilcpasmalCPasMalu   Films & Séries en streaming)films-streaming/showMenuMovies)r   
showMoviesshowMovieGenres)series-streaming/showMenuTvShows)r   r   showSerieGenres)Fr   )zaindex.php?do=search&subaction=search&search_start=0&full_search=0&result_from=1&story=%s&cat=Filmr   )zbindex.php?do=search&subaction=search&search_start=0&full_search=0&result_from=1&story=%s&cat=Serier   r   c                      [        5       n [        5       nUR                  SS5        U R                  [        SSSU5        UR                  SS5        U R                  [        SSSU5        U R                  5         g )	NsiteUrlzhttp://venom/r   Filmsz	films.pngr   u   Sériesz
series.png)r   r   addParameteraddDirSITE_IDENTIFIERsetEndOfDirectoryoGuioOutputParameterHandlers     G/home/kodi/.kodi/addons/plugin.video.vstream/resources/sites/cpasmal.pyloadr   "   sj    6D57((ODKK!17KI`a((ODKK!2I|Mde    c                     [        5       n [        5       nUR                  S[        S   5        U R	                  [
        SSSU5        UR                  S[        S   5        U R	                  [
        [        S   SSU5        UR                  S[        S   5        U R	                  [
        [        S   S	S
U5        U R                  5         g )Nr   r   
showSearch	Recherchezsearch-films.png   Derniers ajoutsnews.pngGenres
genres.png)	r   r   r   URL_SEARCH_MOVIESr   r   
MOVIE_NEWSMOVIE_GENRESr   r   s     r   r   r   .   s    6D57((4Ea4HIKK{<NPgh((JqMBKKA0A:Ofg((LODKKa(LJabr    c                     [        5       n [        5       nUR                  S[        S   5        U R	                  [
        SSSU5        UR                  S[        S   5        U R	                  [
        [        S   SSU5        UR                  S[        S   5        U R	                  [
        [        S   S	S
U5        U R                  5         g )Nr   r   r"   r#   zsearch-series.pngr$   r%   r&   r'   r(   )	r   r   r   URL_SEARCH_SERIESr   r   
SERIE_NEWSSERIE_GENRESr   r   s     r   r   r   >   s    6D57((4Ea4HIKK{<OQhi((JqMBKKA0A:Ofg((LODKKa(LJabr    c                      [        5       n [        5       nUR                  S5      nU R                  5       nU(       a0  X#R	                  SS5      -  n[        U5        U R                  5         g g )Nr    %20)r   r   getValueshowKeyBoardreplacer   r   )r   oInputParameterHandlersUrlsSearchTexts       r   r"   r"   N   sd    6D35!**95D##%K##C//4 	 r    c                  >   [        5       n SS/SS/SS/SS/S	S
/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS /S!S"/S#S$//n[        5       nU H;  u  p4UR                  S%[        S&   S'-   U-   5        U R	                  [
        S(X25        M=     U R                  5         g ))NActionaction	Animation	animationAventureaventureBiopicbiopic   ComédiecomedieDocumentairedocumentaireDramedrame
Espionnage
espionnageFamilialfamilleFantastiquefantastiqueGuerreguerreHistoire
historiqueHorreurzepouvante-horreurPolicierpolicierRomanceromanceScience-Fictionzscience-fictionThrillerthrillerWesternwesternr   r   /genre/r   )r   r   r   r+   addGenrer   r   r   lister   sTitler7   s        r   r   r   Z   s    6D!K#=
J?WZbdlYm)$~~&FRYHZ]ikw\x  |F  HQ  {R]+h-AJP\C]`ik~_*%	9'=@QSd?e*%	9'=	?E 67,,YQ)8SVZ8Z[o|VU  	r    c                  >   [        5       n SS/SS/SS/SS/S	S
/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS /S!S"/S#S$//n[        5       nU H;  u  p4UR                  S%[        S&   S'-   U-   5        U R	                  [
        S(X25        M=     U R                  5         g ))Nr:   action_sr<   animation_sr>   
aventure_srB   	comedie_srD   zdocumentaire-srF   drame_srJ   z	famille-srL   fantastique_srN   guerre_s
Judiciairezjudiciare-s
Historiquehistorique_srR   	horreur_sMusical	musical_srS   
policier_srU   	romance_srW   science_fiction_srX   
thriller_srZ   	western_sr   r   r\   r   )r   r   r   r/   r]   r   r   r^   s        r   r   r   k   s    6D
#k=%AJP\C]+&9I(JWV_L`+&(H8U_J`coq~bN+i-E	S^G_,')[)ADUWjCk,')[)ACE 67,,YQ)8SVZ8Z[o|VU  	r    c           
         [        5       n[        5       n[        5       nSnU (       a@  U R                  S5      u  pVUR                  S5      u  pxUR	                  SS5      nUS:H  nSn	O)[        5       n
U
R                  S5      n[        S	   U;   nS
n	SU;  a	  [        U-   n[        U5      nUR                  5       nUR                  X5      nU (       at  US	   (       dj  SU ;   ad  U R                  S5      n[        US S9S S S2   n[        [        S	   -   US	   -   n[        U5      nUR                  5       nUR                  X5      nUS	   (       Ga-  [        5       n[        5       nUS    GH  nUS	   nUS   nUS   nUR!                  U5      R	                  SS5      nUU;   a  M<  UR#                  U5        SU;   d  SU;   a  M[  U (       a&  US   nUW:w  a  Mo  UR%                  WU5      (       d  M  SU;  a  [        S S U-   nUR'                  SU5        UR'                  SU5        UR'                  SU5        U(       a  UR)                  [*        SUSUSU5        M  UR-                  [*        SUSUSU5        GM     U (       d]  [/        U5      u  nnU(       a7  [        5       nUR'                  SU5        UR1                  [*        SSU-   U5        UR3                  5         g g )NFz&cat=z&story=r1   r2   Seriez`th-img img-resp-v" href="([^"]+).+?<img src="([^"]+).+?alt="([^"]+)" \/> <span class="th-([^"]+)r   r   zIth-img img-resp-v" href="([^"]+).+?data-src="([^"]+).+?alt="([^"]+)" \/> httpc                     [        U 5      $ )N)len)termes    r   <lambda>showMovies.<locals>.<lambda>   s    c%jr    )keyr$       zF1 2024zF1 2025   sThumbsMovieTitleshowSaisonsshowMovieLinksr   zPage )r   r
   r	   splitr5   r   r3   SERIE_SERIESURL_MAINr   requestparsesorted
URL_SEARCHsetr   	CleanNameaddCheckOccurencer   addTVr   addMovie__checkForNextPageaddNextr   )sSearchr   oUtiloParserbShowr7   	catSearchar8   sPatternr6   oRequestHandlersHtmlContentaResulttermestitlesr   aEntryr   r`   
cleanTitlesCat	sNextPagesPagings                           r   r   r   }   s   6DGEiGE!--0I.||C'W$u!7!9%..y9Q4'^T>$%d+O"**,LmmL3G wqz'>]]3'FF(@A$B$GFjm+fQi7D-d3O*224LmmL;Gqzz"9";ajF!9DAYFAYF 088bAJV#JJz" F"i6&9 ay9$++K@@V#!#2/#00DA#006B#00G

?M62vrSjko/?VUWYpqC !F /=	7&=&?##00IFLL,'8IKbc  r    c                     [        5       nSnUR                  X5      nUS   (       a1  US   S   n[        R                  " SU5      R	                  S5      nXE4$ g)Nz(class="navigation".+?href="([^"]+)">suivr   r$   z	/([0-9]+))Fnone)r	   r   researchgroup)r   r   r   r   r   sNumberNexts         r   r   r      sW    iG9HmmL3GqzAJqM	iiY7==a@%%r    c            
         [        5       n [        5       n[        5       nUR                  S5      nUR                  S5      nSnSU;  a	  [        U-   n[        U5      nUR                  5       nUR                  USS5      nSnUR                  Xx5      n	U	S   (       a  [        5       n
U	S	   S S S
2    Hw  nUS   nUS	   nSU;  a	  [        U-   nUS-   US   -   nU
R                  SU5        U
R                  SU5        U
R                  SU5        U R                  [        SUSXU
5        My     U R                  5         g [        5         g )Nr   r   r   rv   class="seasons"zsmart-text-szdhref="([^"]+)"><div class="thumb"><div class="th-in th-seas.+?data-src="([^"]+)".+?th-count">([^<]+)r   r$   r}   r1   r~   r   showEpisodes)r   r	   r   r3   r   r   r   abParser   r   r   	addSeasonr   r   r   )r   r   r6   r   r7   sDescr   r   r   r   r   r   r   r`   s                 r   r   r      sH   6DiG35(11-@K!**95DET>$%d+O"**,L??<1BNSL vHmmL3Gqz"9";aj2&F!9DAYFV#!F* 3&q	1F#00DA#00G#006BNN?NFBWno ' 	 r    c            
      
   [        5       n [        5       n[        5       nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nSU;  a	  [        U-   n[        U5      nUR                  5       n	UR                  U	SS5      n	Sn
UR                  X5      nUS	   (       a  [        5       nUS
    H  nUS	   nU< SUS
   < 3nUR                  SU5        UR                  SU5        UR                  SU5        UR                  SU5        UR                  SU5        U R                  [        SUSXVU5        M     U R                  5         g [        5         g )Nr   r   r   r   sYearrv   r   z,href="([^"]+)"> <div class="fsa-ep">([^<]+)<r   r$   r1   showSerieLinksr   )r   r	   r   r3   r   r   r   r   r   r   r   
addEpisoder   r   r   )r   r   r6   r7   r   r   r   r   r   r   r   r   r   r   r`   s                  r   r   r     sk   6DiG35!**95D(11-@K#,,X6F"++G4E"++G4ET>$%d+O"**,L??<1BDUVL >HmmL3Gqz"9";ajF!9D +VAY7F#00DA#00G#006B#00%@#00%@OOO-=vr6Zqr ! 	 r    c            	         [        5       n [        5       nUR                  S5      nUR                  S5      nUR                  S5      nSU;  a	  [        U-   n[	        U5      nUR                  5       nUR                  5       n[        5       nSn	UR                  Xi5      n
U
S   (       GaB  [        5       n[        5       nU
S    GH$  nUS   nUS   nUS   nS	=n=nnS
U;   a2  UR                  5       R                  S
5      u  nnUR                  5       nUR                  U5      nU(       d  Mk  [        S-   nSU< SU< SU< 3nU< SU< SUR                  5       < S3nUR!                  SU5        UR!                  SU5        UR!                  SU5        UR!                  SU5        UR!                  SU5        UR!                  SU5        U R#                  [$        SUUUU5        GM'     U R'                  5         g )Nr   r   r   rv   z5fx-row" onclick="getxfield\('(\d+)', '(.+?)', '(.+?)'r   r$   r~   r   _zengine/ajax/getxfield.php?id=&xfield=z&token= () [COLOR coral][/COLOR]referercookpostdatashowHostersr   r   r3   r   r   r   
GetCookiesr	   r   r   r   stripr   uppercheckHoster
capitalizer   addLinkr   r   )r   r6   r7   r   r   r   r   r   r   r   r   r   
oHosterGuir   videoIdxfieldtoken
hosterNamesLangr   oHostersUrl2postDatasDisplayTitles                           r   r   r   )  s   6D35!**95D(11-@K#,,X6FT>$%d+O"**,L%%'DiGLHmmL3Gqzz"9";\
ajFQiGAYF1IE)++J+$*LLN$8$8$=!
E ,,Z8G;;E5<feLHCNPUWaWlWlWnoM#00EB#00L#006B#00DA#00>#00XFLL-PUWno- !0 	r    c            	         [        5       n [        5       nUR                  S5      nUR                  S5      nUR                  S5      nSU;  a	  [        U-   n[	        U5      nUR                  5       nUR                  5       n[        5       nSn	UR                  Xi5      n
U
S   (       Ga=  [        5       n[        5       nU
S    GH  nUS   nUS   nS=n=nnS	U;   a2  UR                  5       R                  S	5      u  nnUR                  5       nUR                  U5      nU(       d  Mf  S
U-   S-   U-   S-   n[        S-   nU< SU< SUR                  5       < S3nUR!                  SU5        UR!                  SU5        UR!                  SU5        UR!                  SU5        UR!                  SU5        UR!                  SU5        U R#                  [$        SUUUU5        GM"     U R'                  5         g )Nr   r   r   rv   z6fx-row" onclick="playEpisode\(this, '(\d+)', '(.+?)'\)r   r$   r   r   r   r   z&action=playEpisodez%engine/inc/serial/app/ajax/Season.phpr   r   r   r   r   r   r   r   )r   r6   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s                          r   r   r   W  s   6D35!**95D(11-@K#,,X6FT>$%d+O"**,L%%'DiGKHmmL3Gqzz"9";\
ajFQiGAYF)++J+$*LLN$8$8$=!
E ,,Z8G w3f<?TTHFFE DOPUWaWlWlWnoM#00EB#00L#006B#00DA#00>#00XFLL-PUWno3 !6 	r    c                     [        5       n [        5       nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      n[        U5      nUR	                  S5        UR                  SU5        UR                  S	S
5        UR                  SU5        UR                  U5        UR                  5       n	[        5       n
SnU
R                  X5      nUS   (       ad  US   S   n[        5       R                  U5      nU(       a<  UR                  U5        UR                  U5        [        5       R                  XX5        U R                  5         g )Nr   r   r   r   r   r   r$   RefererzContent-Typez!application/x-www-form-urlencodedCookiez<iframe src="([^"]+)r   )r   r   r3   r   setRequestTypeaddHeaderEntryaddParametersLiner   r	   r   r   r   setDisplayNamesetFileName
showHosterr   )r   r6   r7   r   r   r   r   r   oRequestr   r   r   r   
sHosterUrlr   s                  r   r   r     sT   6D35!**95D(11-@K#,,X6F$--i8G!**62D%..z:Ht$HAIw/N,OPHd+x(##%LiG'HmmL3GqzQZ]
,**:6"";/,L##D:Fr    )r   )-r   resources.lib.comaddonr   resources.lib.gui.guir   resources.lib.gui.hosterr   +resources.lib.handler.inputParameterHandlerr   ,resources.lib.handler.outputParameterHandlerr   $resources.lib.handler.requestHandlerr   resources.lib.parserr	   resources.lib.utilr
   r   	SITE_NAME	SITE_DESC
getUrlMainr   MOVIE_MOVIEr*   r+   r   r.   r/   r   r)   r-   FUNCTION_SEARCHr   r   r   r"   r   r   r   r   r   r   r   r   r    r    r   <module>r      s    
 . & / N P @ ( $ 	*	=##O44/
A!2370
Q"34"
 H  I 	  	"$Q!h	#L#L,\/dr    