
    `iM                     <   S SK r S SKJrJr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rSrSrSrSrSrSr Sr!S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% r0S& r1S' r2g))    N)progressisMatrixsiteManager)
cHosterGui)cGui)cInputParameterHandler)cOutputParameterHandler)cRequestHandler)cParser)cUtil
adkami_comADKamiu   Animés & Dramas en streaming.)TshowAnimMenu)anime
showSeries)z;video?search=&n=&g=&s=&v=&t=0&p=&order=&d1=&d2=&e=&m=&q=&l=showAZ)zvideo?search=&t=0&order=3r   )TshowDramaMenu)z;video?search=&n=&g=&s=&v=&t=5&p=&order=&d1=&d2=&e=&m=&q=&l=r   )zvideo?search=&t=5&order=3r   )zvideo?search=r   )zvideo?t=0&order=0&search=r   )zvideo?t=5&order=0&search=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                  5         g )NsiteUrlhttp://venom/
showSearch	Recherchez
search.pngr      u   Animés
animes.pngDramas
dramas.png)r   r	   addParameteraddDirSITE_IDENTIFIER
ANIM_ANIMSDRAMA_DRAMASsetEndOfDirectoryoGuioOutputParameterHandlers     J/home/kodi/.kodi/addons/plugin.video.vstream/resources/sites/adkami_com.pyloadr'   $   s    6D57((ODKK{LJab((JqMBKKA	<I`a((LODKKa(LJab    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   showSearchAnimr   zsearch-animes.pngr   r   u   Animés (Liste alphabétique)az.pngu   Animés (Populaire)popular.png)r   r	   r   r   r   	ANIM_LIST
ANIM_VIEWSr"   r#   s     r&   r   r   4   s    6D57((ODKK!1;@SUlm((IaLAKK1/NPXZqr((JqMBKKA0E}Vmn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   showSearchDramar   zsearch-dramas.pngr   r   u   Dramas (Liste alphabétique)r+   zDramas (Populaire)r,   )r   r	   r   r   r   
DRAMA_LISTDRAMA_VIEWSr"   r#   s     r&   r   r   D   s    6D57((ODKK!2KATVmn((JqMBKKA0NPXZqr((KNCKKQ1E}Vmnr(   c                      [        5       n U R                  5       nU(       a(  [        S   U-   n[        U5        U R	                  5         g g Nr   r   showKeyBoard
URL_SEARCHr   r"   r$   sSearchTextsUrls      r&   showSearchSerier;   T   D    6D##%K!}{*4 	 r(   c                      [        5       n U R                  5       nU(       a(  [        S   U-   n[        U5        U R	                  5         g g r4   )r   r6   URL_SEARCH_ANIMSr   r"   r8   s      r&   r*   r*   _   sE    6D##%K"[04 	 r(   c                      [        5       n U R                  5       nU(       a(  [        S   U-   n[        U5        U R	                  5         g g r4   )r   r6   URL_SEARCH_DRAMASr   r"   r8   s      r&   r0   r0   j   sE    6D##%K #k14 	 r(   c                      [        5       n U R                  5       nU(       a(  [        S   U-   n[        U5        U R	                  5         g g r4   r5   r8   s      r&   r   r   u   r<   r(   c                     [        5       n [        5       nUR                  S5      n/ nUR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SS	U-   /5        UR                  S
SU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  SSU-   /5        UR                  S S!U-   /5        UR                  S"S#U-   /5        UR                  S$S%U-   /5        UR                  S&S'U-   /5        UR                  S(S)U-   /5        UR                  S*S+U-   /5        UR                  S,S-U-   /5        UR                  S.S/U-   /5        UR                  S0S1U-   /5        UR                  S2S3U-   /5        UR                  S4S5U-   /5        UR                  S6S7U-   /5        [	        5       nU H0  u  pVUR                  S8U5        U R                  [        S9US:U5        M2     U R                  5         g );Ntype2Actionz video?recherche=&genre3=1&type2=Aventurez video?recherche=&genre3=2&type2=u   Amour & Amitiéz video?recherche=&genre3=3&type2=Combatz video?recherche=&genre3=4&type2=u   Comédiez video?recherche=&genre3=5&type2=u   Contes & Récitsz video?recherche=&genre3=6&type2=zCyber & Mechaz video?recherche=&genre3=7&type2=zDark Fantasyz video?recherche=&genre3=8&type2=Dramez video?recherche=&genre3=9&type2=Ecchiz!video?recherche=&genre3=10&type2=u	   Éducatifz!video?recherche=&genre3=11&type2=u   Énigme & Policierz!video?recherche=&genre3=12&type2=u   Épique & Héroiquez!video?recherche=&genre3=13&type2=zEspace & Sci-Fictionz!video?recherche=&genre3=14&type2=zFamilial & Jeunessez!video?recherche=&genre3=15&type2=zFantastique & Mythez!video?recherche=&genre3=16&type2=Hentaiz!video?recherche=&genre3=17&type2=
Historiquez!video?recherche=&genre3=18&type2=Horreurz!video?recherche=&genre3=19&type2=zMagical Girlz!video?recherche=&genre3=20&type2=Musicalz!video?recherche=&genre3=21&type2=Psychologiquez!video?recherche=&genre3=22&type2=Sportz!video?recherche=&genre3=23&type2=zTranche de viez!video?recherche=&genre3=24&type2=u	   Shôjo-Aiz!video?recherche=&genre3=25&type2=u
   Shônen-Aiz!video?recherche=&genre3=26&type2=zYaoi/BLz!video?recherche=&genre3=27&type2=r   r   z
genres.png)	r   r   getValueappendr	   r   r   r   r"   )r$   oInputParameterHandlersType2lister%   sTitler:   s          r&   
showGenresrU      s   6D35#,,W5FE	LL(>GHI	LL*@6IJK	LL#%G&%PQR	LL(>GHI	LL*@6IJK	LL$&H6&QRS	LL/#E#NOP	LL."Dv"MNO	LL'=FGH	LL'>GHI	LL+BVKLM	LL&(Kf(TUV	LL')Lv)UVW	LL(*MPV*VWX	LL')Lv)UVW	LL')Lv)UVW	LL(?&HIJ	LL, Cf LMN	LL)@6IJK	LL."E"NOP	LL)@6IJK	LL/#F#OPQ	LL'>GHI	LL"$G&$PQR	LL+BVKLM	LL, Cf LMN	LL)@6IJK57,,Y=O\6<I`a  	r(   c            	         [        5       n [        5       nUR                  S5      n[        5       nUR	                  SU5        U R                  [        SSSU5        SS KnUR                   HY  nU[        U5      -   nUR	                  SU5        U R                  [        SS[        U5      R                  5       -   S-   SU5        M[     U R                  5         g )	Nr   showNoAlphaz*[COLOR teal] Lettre [COLOR red]123[/COLOR]r+   r   r   z[COLOR teal] Lettre [COLOR red]z[/COLOR])r   r   rO   r	   r   r   r   stringascii_lowercasestrupperr"   )r$   rQ   r:   r%   rX   isUrl2s          r&   r   r      s    6D35!**95D 67((D9KK0\^fh  A##s1v,,Y>O\3TWZ[\W]WcWcWe3ehr3rt|  V  	W	 $ 	r(   c            
         [        5       n [        5       n[        5       nUR                  S5      n[	        U5      nUR                  5       nSnUR                  XV5      nSnUR                  XV5      nUS   (       d  U R                  [        5        US   (       a  [        5       nUS    H  n	U	S   n
U	S   nU	S   nUR                  SU5        UR                  SU5        UR                  SU
5        S	U;   a  U R                  [        S
USU
SU5        Mk  SU;   a  U R                  [        S
USU
SU5        M  U R                  [        S
USU
SU5        M     U R                  5         g )Nr   z@class="video-item-list-days"><h5>Lettre 123</h5>(.+?)<div id="A"z`data-original="([^"]+)".+?<span class="top"><a href="([^"]+)"><span class="title">([^<]+)</span>r   r      sMovieTitlesThumbt=1
showSaison
series.png t=5r   r   )r   r   r   rO   r
   requestparseaddTextr   r	   r   addTVaddDramaaddAnimer"   )r$   oParserrQ   r:   oRequestHandlersHtmlContentsPatternaResultr%   aEntryra   r]   rT   s                r&   rW   rW      sV   6DiG35!**95D%d+O"**,L RH==8L rHmmL3G1:_%qz"9";ajFAYF1IEAYF#00EB#00G#006B}

?L&,PVXZ\st$o|V\SY[]_vwo|V\SY[]_vw !" 	r(   c           
         [        5       nU (       aB  [        5       nU R                  S5      S   nUR                  U5      nU R	                  SS5      nO[        5       nUR                  S5      nSU;  a	  [        U-   n[        U5      nUR                  5       nSn[        R                  " X[        R                  5      n	U	(       Ga  [        U	5      n
[        5       R                  [         U
S:  S	9n[#        5       nU	 H  nUR%                  X5        UR'                  5       (       a    OUS
   nUS   nUS   nU (       a  WR)                  WU5      (       d  MZ  UR+                  SU5        UR+                  SU5        UR+                  SU5        SU;   a  UR-                  [.        SUSUSU5        M  SU;   a  UR1                  [.        SUSUSU5        M  UR3                  [.        SUSUSU5        M     UR5                  U5        [7        U5      nUSLa]  [#        5       nUR+                  SU5        [        R8                  " SU5      R;                  S5      nUR=                  [.        SSU-   U5        U (       d  UR?                  5         g g )N= +r   httpzYdata-original="([^"]+)".+?class="top">.+?<a href="([^"]+)">.+?<span class="title">([^<]+)2   larger   r   r_   r`   ra   rb   rc   rd   re   rf   r   r   Fzpage=([0-9]+)r   zPage ) r   r   split	CleanNamereplacer   rO   URL_MAINr
   rg   refindallDOTALLlenr   VScreate	SITE_NAMEr	   VSupdate
iscanceledCheckOccurencer   rj   r   rk   rl   VSclose__checkForNextPagesearchgroupaddNextr"   )sSearchr$   oUtilr9   r:   rQ   rn   ro   rp   rq   total	progress_r%   rr   ra   r]   rT   	sNextPagesNumPages                      r&   r   r      sA   6DmmC(,ook2sC(!7!9%..y9T>$%d+O"**,LjHjj;GGJ''	'D	"9"; Fy0##%%AYF1IEAYF ++K@@#00EB#00G#006B}

?L&,PVXZ\st$o|V\SY[]_vwo|V\SY[]_vw/ 2 	)$&|4	E!&=&?##00IFyy)<BB1EHLL,(8JLcd  r(   c                 b    [        5       nSnUR                  X5      nUS   (       a  US   S   $ g)Nz8<button class='actuel'>[0-9]+</button><a href="([^"]+?)"r   r   F)r   rh   )ro   rm   rp   rq   s       r&   r   r   ,  s4    iGKHmmL3Gqzqz!}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[        5       nSn Sn	UR                  Xi5      n
U
S   (       a*  U
S   S   nUR                  SS5      R                  S	S
5      nSn	UR                  Xi5      n
U
S   (       a  U R                  [        S5        OUR                  US5      n
U
S   (       a  U R                  [        S5        OSn	UR                  Xi5      n
U
S   (       a  [        5       nU
S    H~  nUnSU-   nUS-   U-   nUS-   U-   n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XHU5        M     U R                  5         g !    GN+= f)Nr   r`   ra   re   z)<p class="description.+?">([^<]+)<a titler   r   z<br />z&apos;'u7   <p style="background-color:[^"]+">Animés licencié</p>u2   [COLOR red] !!! Animé non disponible !!! [/COLOR]z!class="lecteur-redirection large"z#<li class="saison" *>.+?(\d+)<\/li>Saison ?sNumSaison=rv   sDescshowEpisoderd   )r   r   rO   r
   rg   r   rh   r~   ri   r   r	   r   	addSeasonr"   )r$   rQ   r:   r`   ra   rn   ro   rm   r   rp   rq   r%   rr   
sNumSaisonsSaison
sUrlSaisonsDisplayTitlerT   s                     r&   rc   rc   6  s   6D35!**95D(11-@K#,,X6F%d+O"**,LiGE>--71:AJqMEMM(B/77$GE IHmmL3Gqz_&Z[ --.QR1:LL*^_ =HmmL;Gqz*A*C'%ajF!'J'&0G!%!6!CJ$/#$5$?M(F+88JO+88O+886J+88%HNN?M=R^`f  pG  H ) 	Es   0AG G"c            
      B   [        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      u  p&[	        U5      nUR                  5       n[        5       n	Sn
U	R                  X5      nUS   (       a  U R                  [        S5        GOS	U-   nS
nU	R                  XU5      nSn
U	R                  X5      nUS   (       Ga  [        US   5      n[        5       R                  [        US:  S9n[        5       nUS    GHA  nUR!                  X5        UR#                  5       (       a    GOUS   nUS   nSU-   nUS-   U-   S-   U-   n[$        R&                  " SSU[$        R(                  5      n[$        R&                  " SSU[$        R(                  5      nSnSU;   a  SnOSU;   a  SnUR+                  SS5      R+                  SS5      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XEU5        GMD     UR1                  U5        U R3                  5         g )Nr   r`   ra   r   r   uN   line-height:200px;font-size:26px;text-align:center;">L.anime est licencié<.p>r   u#   [COLOR red]Animé licencié[/COLOR]zclass="saison" >saison z<div class="saison-container">z@<a href="(https://www\.adkami\.com[^"]+)"[^<>]+>([^<]+)</a></li>r   ry   rz   r   rv   z vfz (VF)z vostfrz	 (VOSTFR)re   z(VOSTFR)VOSTFRz(VF)VFsLangshowHostersrd   )r   r   rO   r|   r
   rg   r   rh   ri   r   abParser   r   r   r   r	   r   r   r   sub
IGNORECASEr~   r   
addEpisoder   r"   )r$   rQ   r:   r`   ra   r   r   rn   ro   rm   rp   rq   sStartsEndr   r   r%   rr   sEpisodeSaisonrT   r   r   s                          r&   r   r   n  sv   6D35!**95D(11-@K#,,X6F"++G4Ezz.1D%d+O"**,LiG_HmmL3Gqz_&KL +Z7/|TBU--71::
OE 
++IURZ+HI&=&?#!!*""94''))ay!!9"Z/$s*V3c9HDwF "y+vr}} U.$E}, E&..w;CCKQST'44YE'44]FK'44XvF'44WeD'44WeD|]c  mD  E3 %4 i(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[        5       nSnUR                  Xh5      n	U	S   (       d  SnUR                  Xh5      n	S[        U5      ;   d  S[        U5      ;   d  S	[        U5      ;   a9  S
nUR                  Xh5      n
U	S   (       d  U
n	OU
S   (       a  U	S   U
S   -   nXS'   U	S    H  nSU;   a  SU;  a  [        U5      nOUR                  SS5      nUR                  S5      (       a  SU-   nUR                  SS5      n[        5       R                  U5      nU(       d  M|  UR                  U5        UR                  U5        [        5       R                  XX5        M     U R!                  5         g )Nr   r`   ra   z(<div class="video-iframe.+?url="([^"]+)"r   z$class="video-video">.+?src="([^"]+)"crunchyrollwakanimanimedigitalnetworkzencrypted-media.+?src="([^"]+)"r   youtubezhl=frrw   plusz//zhttps:)r   r   rO   r
   rg   r   rh   rZ   decodexr~   
startswithr   checkHostersetDisplayNamesetFileName
showHosterr"   )r$   rQ   r:   r`   ra   rn   ro   rm   rp   rq   aResult2frr   
sHosterUrloHosters                  r&   r   r     s   6D35!**95D(11-@K#,,X6F%d+O"**,LiG9HmmL3G1:9--7L))Y#l:K-KOdhklxhyOy4==8qzG{AJ!,
!*7&#86?D>>#v.D??4  d?D\\&#.
,**:67"";/,L##D:F " 	r(   c                 8   SSK Jn  SS KnU R                  SS5      n [	        U 5      S-  nU(       a  U SSU-
  -  -  n  UR                  U 5      nSnSnSnU" U5      n[        [        U5      5       H  u  p[        5       (       a  [        SU
-  5      [        Xg   5      -
  nO([        S[        U
S   5      -  5      [        Xg   5      -
  nUS:  a  US	-   nSUs=::  a  S
::  a  O  OU[        U5      -  nO  gU[	        U5      S-
  :  a  SOUS-   nM     U$ !    g= f)Nr   )chainzhttps://www.youtube.com/embed/re      rt   ETEfazefzeaZa13MnZEe         r   )	itertoolsr   base64r~   r   	b64decode	enumeratelistr   intordchr)xr   r   missing_paddingetrapxr\   y	char_codes               r&   r   r     s   			2B7A!fqjO	SA'((Q"1Xd2h'DAzzaL3qt94	c!A$i03qt9<	1}%O	I$$S^##a&1*_!a%A (  s   B7D 6D D)re   )3r   resources.lib.comaddonr   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.utilr   r   r   	SITE_DESC
getUrlMainr   r    	ANIM_NEWSr-   r.   r!   r1   r2   r7   r>   r@   FUNCTION_SEARCHr'   r   r   r;   r*   r0   r   rU   r   rW   r   r   rc   r   r   r    r(   r&   <module>r      s    
 B B / & N P @ ( $ 	,	=##O4#
#	U	8
&V
9,
> ?    'T((V@!F5p<~/d#r(   