
    `iO@                     B   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 S	KrS
rSrSrSr\" 5       R+                  \5      rSr\S-   S4r\S-   S4rSrSr\S-   S4r\S-   S4rSrSrSr S r!S r"S r#S r$S r%S%S jr&S  r'S%S! jr(S" r)S# r*S$ r+g	)&    )siteManager)
cHosterGui)cGui)cInputParameterHandler)cOutputParameterHandler)cRequestHandler)cParser)cUtilNzHMozilla/5.0 (Windows NT 6.1; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0wiflixWiflixu   Films & Séries en streaming)TshowMenuMovieszfilm-en-streaming/
showMovieszfilm-en-streaming/exclue)T
showGenres)TshowMenuSerieszserie-en-streaming/
showSerieszindex.php?do=search
showSearch) r   )r   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                  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 )NsiteUrlhttp://filmr   zRecherche Filmszsearch-films.pnghttp://serieu   Recherche Sérieszsearch-series.pngr      zFilms (Derniers ajouts)news.pngzFilms (Genres)
genres.pngu   Séries (Derniers ajouts)u   Films et Séries (Exclus))
r   r   addParameteraddDirSITE_IDENTIFIER
MOVIE_NEWSMOVIE_GENRES
SERIE_NEWSMOVIE_EXCLUsetEndOfDirectoryoGuioOutputParameterHandlers     F/home/kodi/.kodi/addons/plugin.video.vstream/resources/sites/wiflix.pyloadr'   '   s&   6D57((MBKK/@BTVmn((NCKK/BDWYpq((JqMBKKA0I:Wno((LODKKa2BLRij((JqMBKKA0KZYpq((KNCKKQ1LjZq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   
Rechercher
search.pngr   r   Derniers ajoutsr   z
Par genresr   )r   r   r   r   r   r   r   r"   r#   s     r&   r   r   C   s    6D57((MBKK|\Kbc((JqMBKKA0A:Ofg((LODKKa,Nef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 )
Nr   r   r   r*   r+   r   r   r,   r   )r   r   r   r   r   r    r"   r#   s     r&   r   r   S   sq    6D57((NCKK|\Kbc((JqMBKKA0A:Ofgr(   c                      [        5       n [        5       nUR                  S5      nU R                  5       nU(       a.  SU;   a  [	        U5        O[        U5        U R                  5         g g )Nr   film)r   r   getValueshowKeyBoardr   r   r"   )r$   oInputParameterHandlersUrlsSearchTexts       r&   r   r   `   s^    6D35!**95D##%KT>{#{#  r(   c                  D   [        5       n [        5       n[        n[        U5      nUR	                  5       nSnSnUR                  XEU5      nSnUR                  XG5      nUS   (       d  U R                  [        5        / n	US   (       a  US    H4  n
[        U
S   -   nU
S   R                  5       nU	R                  X45        M6     [        U	S S9n	[        5       nU	 H.  u  pUR                  SU5        U R                  [        S	X5        M0     U R                  5         g g )
Nz#</span><b>Films par genre</b></div>z<div class="side-b">z<a href="([^"]+)">([^<]+)r   r   c                     U S   $ )Nr    )genres    r&   <lambda>showGenres.<locals>.<lambda>   s    eAhr(   )keyr   r   )r   r	   URL_MAINr   requestabParseparseaddTextr   
capitalizeappendsortedr   r   addGenrer"   )r$   oParserr3   oRequestHandlersHtmlContentsStartsEndsPatternaResultTriAlphaaEntrysTitler%   s                r&   r   r   q   s   6DiGD%d+O"**,L2F!D??<>L*HmmL3G1:_%HqzajFfQi'DAY))+FOOVN+ ! ((>?"9";$LF#00DAMM/<Y % 	  r(   c           
      	   [        5       n[        5       nU (       Ga5  [        5       nUR                  U R	                  SS5      5      nSUR	                  SS5      -   S-   n[        [        S   5      nUR                  5         UR                  5       nUR                  SU5        UR                  S5        UR                  S	[        5        UR                  S
[        S   5        UR                  S[        5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  U5        UR                  5       nO6[        5       n	U	R                  S5      n
[        U
5      nUR                  5       nSnUS-  nUR!                  X5      nUS   (       Ga  [#        5       nUS    GH  nUS   nUR%                  S5      (       a  [        S S US   -   nUS   R	                  SS5      R	                  SS5      nUS   n
US   nUS   nUS   nUU;   a  [&        R(                  " SU-   S-   SU5      nU (       a  WR+                  WU5      (       d  M  [-        US    5      nUR	                  S!S5      nUR	                  S"U-   S#-   S5      nUR	                  S"U-   S$-   S5      nUR	                  S%U-   S#-   S5      nUR	                  S%U-   S$-   S5      nUR	                  S&U-   S$-   S5      nUR	                  S%U-   S'-   S5      nUR	                  S(U-   S#-   S5      nUR	                  S(U-   S'-   S5      nUR	                  S(U-   S$-   S5      nUR	                  S)U-   S#-   S5      nUR	                  S)U-   S$-   S5      nUR	                  S*U-   S$-   S5      nUR	                  S"S5      nUR/                  5       nU< S+U< S,U< S-3nUR1                  SU
5        UR1                  S.U5        UR1                  S/U5        UR1                  S0U5        S1U
;   a  UR3                  [4        S2USUUU5        GM  UR7                  [4        S3USUUU5        GM     [9        U5      u  nnU(       a7  [#        5       nUR1                  SU5        UR;                  [4        S4S5U-   U5        OUR=                  [4        5        U (       d  UR?                  5         g g )6N%20 !do=search&subaction=search&story=+z%&titleonly=3&catlist[]=1&catlist[]=37r   Cookier   
User-AgentRefererOriginAccept?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language#fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3Content-Typez!application/x-www-form-urlencodedr   zimov clearfix.+?src="([^"]*)" *alt="([^"]*).+?link="([^"]+).+?(?:|bloc1">([^<]+).+?)(?:|bloc2">([^<]*).+?)z?ml-desc"> (?:([0-9]+)| )</div.+?Synopsis:.+?ml-desc">(.*?)</div/z wiflixr   z flemmix            z\(z\)   zen streaming zRegarder film ;:z
Voir film z
Voir Film z :z	Regarder zvoir zVoir z [z] ()sMovieTitlesThumbsYearzserie-en-streamingshowEpisodesshowHostersr   Page ) r   r	   r
   	CleanNamereplacer   
URL_SEARCHr=   
GetCookiesaddHeaderEntrysetRequestTypeUAr<   addParametersLiner   r0   r?   r   
startswithresubCheckOccurencestrstripr   	addSeasonr   addMovie__checkForNextPageaddNextr@   r"   )sSearchr$   rE   oUtilr4   pdataoRequestcookierG   r2   r3   rF   rJ   rK   r%   rM   rh   rN   sLangsQualri   sDescsDisplayTitle	sNextPagesPagings                            r&   r   r      s   6DiGoogooeS&AB3k6I6I#s6SSV}}":a=1$$&&1"b1	:a=9(3*kl 13XY0ST""5)'') "8!9%..y9)$/&..0zHQQHmmL3Gqzz"9";ajFAYF  %%!#22AY&&y"5==j"MF!9D1IE1IE1IEut 3R@ u33KHH q	NEMM/26EMM"2V";c"A2FEMM"2V";c"A2FEMM,"7#"=rBEMM,"7#"=rBEMM,"7#"=rBEMM,"7$">CEMM+"6"<bAEMM+"6"=rBEMM+"6"<bAEMM'F"2S"8"=EMM'F"2S"8"=EMM'F"2S"8"=EMM"2B7EKKME.4eUCM#00DA#00G#006B#00%@#t+rSY[`byzo}mRQWY^`wxY !\ 0=	7&=&?##00IFLL,'8IKbc_%  r(   c                     Sn[        5       nUR                  X5      nUS   (       aG  US   S   S   nUS   S   S   n[        R                  " SU5      R	                  S5      nUS-   U-   nXW4$ g)Nz<>([^<]+)</a> *</span>.*?<span class="pnext"><a href="([^"]+)r   r   zpage.([0-9]+)r]   )Fnone)r	   r?   rv   searchgroup)rG   rJ   rE   rK   
sNumberMaxr   sNumberNextr   s           r&   r}   r}      s}    MHiGmmL3GqzQZ]1%
AJqM!$	ii;AA!D#j0!!r(   c           
      b   [        5       n[        5       nU (       a  [        5       nUR                  U R	                  SS5      5      nU R	                  SS5      nSU-   S-   n[        [        S   5      nUR                  S[        5        UR                  S[        5        UR                  S	S
5        UR                  SS5        UR                  SS5        UR                  U5        UR                  5       nO6[        5       n	U	R                  S5      n[        U5      n
U
R                  5       nSnUR                  X5      nUS   (       GaM  [        5       nUS   S S S2    H  nUS   nUR!                  S5      (       a  [        S S US   -   nUS   R	                  SS5      R	                  SS5      R	                  SS5      R#                  5       nU (       a  WR%                  WU5      (       d  M  UnUS   nUR'                  SU5        UR'                  SU5        UR'                  SU5        UR)                  [*        SUSUSU5        M     [-        U5      u  nnU(       a7  [        5       nUR'                  SU5        UR/                  [*        SSU-   U5        U (       d  UR1                  5         g g )NrP   rQ   rS   rR   z8&titleonly=3&all_word_search=1&catlist[]=31&catlist[]=35r   rU   rV   rX   rY   rZ   r[   r\   zapplication/jsonr   z?mov clearfix.+?src="([^"]+)" *alt="([^"]+).+?data-link="([^"]+)r   r^   r]   z	- Saison Sr   r   flemmixr_   rg   rh   rj   r   rl   )r   r	   r
   rm   rn   r   ro   rq   rs   r<   rt   r=   r   r0   r?   r   ru   rz   rx   r   r{   r   r}   r~   r"   )r   r$   rE   r   r4   r3   r   r   rG   r2   rF   rJ   rK   r%   rM   rh   rN   r   r   r   s                       r&   r   r      sr   6DiGoogooeS&ABsC(3d:=ww":a=1b1	84*kl 13XY0BC""5)'')!7!9%..y9)$/&..0PHmmL3Gqzz"9";aj2&FAYF  %%!#22AY&&{C8@@2NVVW`bdekkmF u33KHH"M!9D#00DA#00G#006BNN?NM2vWY[rs# '& 0=	7&=&?##00IFLL,'8IKbc  r(   c            
         [        5       n [        5       nUR                  S5      nUR                  S5      nUR                  S5      n[        U5      nUR	                  5       nSn[        5       nUR                  Xg5      n	Sn
UR                  SS5      nU	S   (       a  [        5       nU	S	    H  nUS   (       d  M  S
US	   ;   a  Sn
OSUS	   ;   a  Sn
SUS	   ;   a  M1  U< SUS   < 3nU< SU
< 3nUR                  SU< SUS   < 35        UR                  SU5        UR                  SU5        U R                  [        SUSUSU5        M     U R                  5         g )Nr   rg   rh   z/"clicbtn" rel="(ep\d+(vf|vs))" *>Episode (\d+)<r   zsaison r   r   r   vsz	 (VOSTFR)vfz (VF)epblocksz Er_   rQ   |showHostersEpisode)r   r   r0   r   r=   r	   r?   rn   r   r   
addEpisoder   r"   )r$   r2   r3   rg   rh   rF   rG   rJ   rE   rK   r   r%   rM   rN   r   s                  r&   rj   rj   <  sd   6D35!**95D(11-@K#,,X6F%d+O"**,L@HiGmmL3G E%%i5Kqz"9";ajFayy6!9$'EVAY&#E*%0&)<+15 9'44Y4QWXYQZ@[\'44]FK'44XvF1E}VXZ`bdf}~# !& 	r(   c                  h   [        5       n [        5       nUR                  S5      R                  S5      u  p#UR                  S5      nUR                  S5      n[	        5       n[        U5      nUR                  5       nSU-  n	Sn
UR                  XU
5      nSnUR                  X5      nUS   (       ao  US	    Hf  nUnUn[        5       R                  U5      nU(       d  M)  UR                  U5        UR                  U5        [        5       R                  U UX5        Mh     U R                  5         g )
Nr   r   rg   rh   z<div class="%s"z</div>loadVideo\('([^']+)r   r   )r   r   r0   splitr	   r   r=   r>   r?   r   checkHostersetDisplayNamesetFileName
showHosterr"   )r$   r2   r3   sIDrg   rh   rE   rF   rG   rH   rI   rJ   rK   rM   r   
sHosterUrloHosters                    r&   r   r   f  s   6D35&//	:@@EID(11-@K#,,X6FiG%d+O"**,L$FD??<>L %HmmL3G qzajF'MJ l..z:Gw&&}5##K0''gzJ ! 	r(   c                     [        5       n [        5       nUR                  S5      nUR                  S5      nUR                  S5      n[        5       n[	        U5      nUR                  5       nSnUR                  Xx5      n	U	S   (       an  U	S    He  n
UnU
n[        5       R                  U5      nU(       d  M)  UR                  U5        UR                  U5        [        5       R                  XX5        Mg     U R                  5         g )Nr   rg   rh   r   r   r   )r   r   r0   r	   r   r=   r?   r   r   r   r   r   r"   )r$   r2   r3   rg   rh   rE   rF   rG   rJ   rK   rM   r   r   r   s                 r&   rk   rk     s    6D35!**95D(11-@K#,,X6FiG%d+O"**,L$HmmL3GqzajF'MJ l..z:Gw&&}5##K0''zJ ! 	r(   )r   ),resources.lib.comaddonr   resources.lib.gui.hosterr   resources.lib.gui.guir   +resources.lib.handler.inputParameterHandlerr   ,resources.lib.handler.outputParameterHandlerr   $resources.lib.handler.requestHandlerr   resources.lib.parserr	   resources.lib.utilr
   rv   rs   r   	SITE_NAME	SITE_DESC
getUrlMainr<   MOVIE_MOVIEr   r!   r   SERIE_SERIESr    ro   URL_SEARCH_MOVIESURL_SEARCH_SERIESFUNCTION_SEARCHr'   r   r   r   r   r   r}   r   rj   r   rk   r7   r(   r&   <module>r      s    / / & N P @ ( $ 	O	*	=##O4 '--|<
44lC#'..=
 ..=
& & 8 
"!B\!~:!z'T@r(   