
    `i6                     $   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-   S4r\S4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!S jr#S r$S r%S r&S r'S  r(g)"    N)
cHosterGui)cGui)cInputParameterHandler)cOutputParameterHandler)cRequestHandler)cParser)siteManager)cUtildulourdDuLourdu   Séries en illimitézvoir-series/
showMoviesshowSeriesGenres)TshowSerieYearszindex.php?do=search) r   )TshowSearchSerie)TshowMenuTvShowsc                      [        5         g N)r        G/home/kodi/.kodi/addons/plugin.video.vstream/resources/sites/dulourd.pyloadr   #   s    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                  5         g )NsiteUrlr      u   Recherche Sérieszsearch-series.pngu   Séries (Derniers ajouts)znews.pngu   Séries (Genres)z
genres.pngu   Séries (Années)
annees.png)
r   r   addParameterMY_SEARCH_SERIESaddDirSITE_IDENTIFIER
SERIE_NEWSSERIE_GENRESSERIE_ANNEESsetEndOfDirectory)oGuioOutputParameterHandlers     r   r   r   '   s    6D57((4DQ4GHKK!1!!46IK^`wx((JqMBKKA0KZYpq((LODKKa2DlTkl((LODKKa2E|Ulmr   c                  ~    [        5       n U R                  5       nU(       a  [        U5        U R                  5         g g r   r   showKeyBoardr   r$   )r%   sSearchTexts     r   r   r   :   s6    6D##%K;  r   c                      [        5       n U R                  5       nU(       a  Un[        U5        U R                  5         g g r   r(   )r%   r*   sUrls      r   
showSearchr-   C   s;    6D##%K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$/S%S&//n[        5       nU H8  u  p4UR                  S'[        S(-   U-   5        U R	                  [
        S)X25        M:     U R                  5         g )*NActionaction_s	Animationanimation_sAventure
aventure_sBiopiczbiopic-su   Comédie	comedie_sDocumentairezdocumentaire-sDramedrame_sFamillez	famille-sFantastiquefantastique_sGuerreguerre_s
Historiquehistorique_sHorreur	horreur_s
Judiciairezjudiciare-sMusique	musical_sPolicier
policier_sRomance	romance_szScience-Fictionscience_fiction_sThriller
thriller_swestern	western_sr   zseries-gratos/r   )r   r   r   URL_MAINaddGenrer    r$   )r%   
listeGenrer&   sTitler,   s        r   r   r   M   s    6DZ(;*FUaHbZ(:{*CnVfEgI&K(@-Q`AaZ(<*H9VaJb/)[1IJXdKek*->@S,TWacoVpk*,J 67",,YCS8SVZ8Z[o|VU # 	r   c            	      h   SS K n [        5       n[        5       n[        [	        S[        U R                   R                  5       R                  5      S-   5      5       HC  n[        U5      nUR                  S[        S-   U-   5        UR                  [        SUSU5        ME     UR                  5         g )Nr   i  r   r   zvoir-series/annee/r   r   )datetimer   r   reversedrangeintnowyearstrr   rO   r   r    r$   )rT   r%   r&   isYears        r   r   r   _   s    6D57eD#h&7&7&;&;&=&B&B"Ca"GHIA,,YCW8WZ_8_`O\5,H_` J
 	r   c           
      \   [        5       n[        5       nU (       a  [        5       nUR                  U 5      nU R	                  SS5      R	                  SS5      n SU -   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                  SU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                  X{5      nUS   (       a  [!        5       nUS    H  nUS   nSU;   a  M  US   R#                  5       nU (       a  WR%                  WU5      (       d  MC  US   nUS   nSU;  a  [        S S U-   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SUSU5        M     OUR-                  [*        5        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 )N +z%20zLdo=search&subaction=search&search_start=0&full_search=0&result_from=1&story=r   r   RefererAcceptz?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8zAccept-Languagez#fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3Content-Type!application/x-www-form-urlencodedpostDatar   ze<article class="movie-box.+?href="([^"]+).+?title="">(\d+)<.+?img data-src="([^"]+).+?alt="([^"]+).+?z/films-      http ()sMovieTitlesThumbr\   showSaisonsr   r   zPage )r   r   r
   	CleanNamereplacer   
URL_SEARCHsetRequestTypeaddHeaderEntryrO   addParametersaddParametersLinerequestr   getValueparser   stripCheckOccurencer   addTVr    addText__checkForNextPageaddNextr$   )sSearchr%   oParseroUtilr*   pdataoRequestsHtmlContentoInputParameterHandlerr,   oRequestHandlersPatternaResultr&   aEntrysUrl2rR   r\   rl   sDisplayTitle	sNextPagesPagings                         r   r   r   l   su   6DiGoog.//#s+33E3?^ahh":a=1"	84*kl 13XY0STz51""5)'') "8!9%..y9)$/&..0 wHmmL3Gqz"9";ajF 1IEE!AY__&F++K@@1IEAYFV#!#2/)/7M#00EB#00G#006B#00%@JJ}b&RTVmn5 !8 	_%/=	7&=&?##00IFLL,'8IKbc  r   c                     [        5       nS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XG4$ g)NzCnavigation.+?<span>\d+</span> <a href="([^"]+).+?>([^<]+)</a></div>r   r   zpage/([0-9]+)/)Fnone)r   rw   researchgroup)r   r   r   r   r   
sNumberMaxsNumberNextr   s           r   r|   r|      s}    iGTHmmL3GqzAJqM!$	QZ]1%
ii;AA!D#j0!!r   c            
         [        5       n [        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UR                  Xx5      n	Sn
U	S   (       a  SS< S	U	S
   S   < 3n
SnUR                  Xx5      n	U	S   (       a  [        5       n[        U	S
   5       H  nUS   nUS   nUS
   nSU;  a  [        S S U-   nU< SU< 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SXZU5        M     OU R                  [        5        U R                  5         g )Nr   rk   rl   z,property="og:description".+?content="([^"]+)
BetaSeriesr   z[I][COLOR grey]zSynopsis : z[/COLOR][/I] r   zUclass="th-hover" href="([^"]+).+?data-src="([^"]+).+?<div class="titlecustom">([^<]*)rf   rg   rh   r^   sDescshowEpisodesr   )r   r   r   rv   r   ru   rw   r   rU   rO   r   	addSeasonr    r{   r$   )r%   r   r   r,   rk   rl   r   r   r   r   r   r&   r   r   sSaisonrR   s                   r   rm   rm      sy   6DiG35!**95D(11-@K#,,X6F%d+O"**,L=HmmL3GEqzz8EwqzRS}UfHmmL3Gqz"9";wqz*F1IEQiGAYFV#!#2/"-w7F#00EB#006B#00%@#00G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5      nUR                  5       nSn	Sn
UR                  XU
5      nSnUR                  X5      nUS   (       a  [        5       nUS	    H  nUS   nUS	   R                  S
S5      R                  5       nSU;  a  [        S S U-   nUS-   U-   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SXVU5        M     OU R                  [        5        U R!                  5         g )Nr   rk   rl   r   zclass="saisontabzclass="clearz&<a href="([^"]+).+?fsa-ep">(.*?)</div>r   r      éerg   rh   r^   showSerieLinksr   )r   r   r   rv   r   ru   abParserw   r   ro   rx   rO   r   
addEpisoder    r{   r$   )r%   r   r   r,   rk   rl   r   r   r   sStartsEndr   r   r&   r   r   sEpisoderR   s                     r   r   r      s}   6DiG35!**95D(11-@K#,,X6F"++G4E%d+O"**,LFD??<>L7HmmL3Gqz"9";ajF1IEay((s399;HU" "- 3&1F#00EB#006B#00G#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UR                  S5      n[        5       n[	        U5      nUR                  5       nUR                  5       n	Sn
UR                  X5      nUS   (       Ga  [        5       nUS    GHn  nUS   nUS   nS=nnS	U;   aB  UR                  5       R                  S	5      u  nnUR                  5       nUR                  5       n[        5       R                  UR                  S
5      S   5      nU(       d  M  SU-   S-   U-   S-   n[        S-   nU< S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	5        UR!                  SU5        UR!                  SU5        UR!                  SU5        U R#                  [$        SUXEU5        GMq     U R'                  5         g )Nr   rk   rl   r   z/class="lien.+?playEpisode.+?'([^']*).+?'([^']*)r   r   r   _r^   zid=z&xfield=z&action=playEpisodez%engine/inc/serial/app/ajax/Season.phpri   z) [COLOR coral]z[/COLOR]referercookpostdatasHostsLangshowSerieHosters)r   r   rv   r   r   ru   
GetCookiesrw   r   rx   split
capitalizeupperr   checkHosterrO   r   addLinkr    r$   )r%   r   r,   rR   rl   r   r   r   r   r   r   r   r&   r   videoIdxfield
hosterNamer   oHosterr   r   r   s                         r   r   r     s   6D35!**95D#,,];F#,,X6F"++G4EiG%d+O"**,L%%'DDHmmL3Gqzz"9";ajFQiGAYF!##J$*LLN$8$8$=!
E'224
 !l..z/?/?/DQ/GHGw3f<?TTHFFECI5R\]M#00EB#00G#00%@#006B#00DA#00>#00XF#00*E#00%@LL*<mV\st? !B 	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5      nUR	                  S5        UR                  SU5        UR                  SS	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   rk   rl   r   r   r   r`   rb   rc   z<iframe src="([^"]+)r   )r   r   rv   r   rq   rr   rt   ru   r   rw   r   r   setDisplayNamesetFileName
showHosterr$   )r%   r   r,   rk   rl   r   r   r   r   r   r   r   
sHosterUrlr   s                 r   r   r   N  s4   6D35!**95D(11-@K#,,X6F$--i8G%..z:Ht$HAIw/N,OPx(##%LiG'HmmL3GqzQZ]
,**:6"";/,L##D:Fr   )r   ))r   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.comaddonr	   resources.lib.utilr
   r    	SITE_NAME	SITE_DESC
getUrlMainrO   r!   r"   r#   rp   URL_SEARCH_SERIESr   SERIE_SERIESr   r   r   r-   r   r   r   r|   rm   r   r   r   r   r   r   <module>r      s    
 / & N P @ ( . $	"	 =##O4'6
,-'..=
&  -  )&$
F!R)X%P3lr   