
    `itD                     ~   S SK r S SKrS SKJr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 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4r#Sr$Sr%Sr&\" 5       r' " S S5      r(S r)S r*S r+S(S jr,S r-S r.S r/S  r0S! r1S" r2S# r3S$ r4 S% r5S& r6S' r7g))    N)progressaddondialogsiteManager)cEnregistremement)cePg)cGui)cGuiElement)
cHosterGui)cInputParameterHandler)cOutputParameterHandler)cRequestHandler)cParser)Unquotefreeboxu   Free Télévision/Radiou   Regarder la télévisionz_https://raw.githubusercontent.com/Kodi-vStream/venom-xbmc-addons/Beta/repo/resources/webtv2.m3uz`https://raw.githubusercontent.com/Kodi-vStream/venom-xbmc-addons/master/repo/resources/radio.m3u)T
showMenuTVshowWebzMozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/48.0.2564.116 Chrome/48.0.2564.116 Safari/537.36tv.pngz;special://home/addons/plugin.video.vstream/resources/art/tvc                       \ rS rSrSS jrSrg)track%   c                 @    Xl         X l        X0l        X@l        XPl        g N)lengthtitlepathicondata)selfr   r   r   r   r   s         G/home/kodi/.kodi/addons/plugin.video.vstream/resources/sites/freebox.py__init__track.__init__&   s    
			    )r   r   r   r   r   N) )__name__
__module____qualname____firstlineno__r!   __static_attributes__ r#   r    r   r   %   s    r#   r   c                      [        5       n [        5       n[        5       nU R                  [        SUR                  S5      SU5        U R                  [        SUR                  S5      SU5        U R                  5         g )Nr   iu  r   showMenuMusiciu  	music.png)r	   r   r   addDirSITE_IDENTIFIERVSlangsetEndOfDirectoryoGuiaddonsoOutputParameterHandlers      r    loadr6   .   sa    6DWF57KKv}}U/CXOfgKK&--2FUlmr#   c                      [        5       n [        5       n[        5       nUR                  S[        5        U R                  [        SUR                  S5      SU5        U R                  5         g )NsiteUrlr   i|v  r   )	r	   r   r   addParameterURL_WEBr.   r/   r0   r1   r2   s      r    r   r   8   sS    6DWF57((G<KKFMM%,@(Lcdr#   c                     [        5       n [        5       n[        5       nUR                  S[        5        U R                  SSUR                  S5      SU5        UR                  SS5        U R                  SSUR                  S5      S	U5        UR                  S[        5        U R                  SS
UR                  S5      SU5        U R                  5         g )Nr8   radior   iu  r-   http://
showGenresiu  z
genres.pngshowAZiu  az.png)r	   r   r   r9   	URL_RADIOr.   r0   r1   r2   s      r    r,   r,   B   s    6DWF57((I>KKFMM%$8+G^_((I>KKv}}U';\Kbc((I>KK6==#7CZ[r#   c                 (   U (       d  [        5       nUR                  S5      n [        U 5      nUR                  S[        5        UR                  5       R                  S5      n/ n[        S S S S 5      nSnU GH  nUR                  5       nUR                  S5      (       ar  UR                  S5      S   R                  SS5      u  p UR                  S5      S   R                  S5      S	   n
U
R                  S
5      S   nSn[        XS U5      nM  [        U5      S:w  d  M  U(       d  M  UR                  S5      (       a  M  UR                  S5      (       a  M  SnXul        UR                  U5        [        S S S S 5      nGM     U$ !   Sn N= f)Nr8   z
User-Agent
Fz#EXTINF:   ,z	tvg-logo=   "r   Tr   !#)r   getValuer   addHeaderEntryUArequestsplitr   strip
startswith	partitionlenr   append)sUrloInputParameterHandleroRequestHandlerinfplaylistsong
ValidEntryliner   r   liconr   s               r    parseM3Ur]   S   sf   !7!9%..y9%d+O""<4

!
!
#
)
)$
/CHtT4(DJzz|??:&& JJz215;;CCMF 

:.q1;;KHK{{3'* Jd3DY!^zDOOC$8$8DOOC<P<P"
 	%T4t4# & O s   :FFc            	        ^ [        5       n [        5       nUR                  S5      nUS:X  a  [        nOUS:X  a  [        n[        US9nUR                  S5      (       a-  UR                  S5      m[        U4S jU5      n[        US S9nO[        US	 S9nU(       d4  [        5       nUR                  SS
5        U R                  [        S5        GO[        5       nUR                  SSSS9n[        U5      n[!        5       R#                  [$        5      n	U GH9  n
U	R'                  X5        U	R)                  5       (       a    GOU
R*                  nU(       d  SnU
R,                  R/                  SS5      R/                  SS5      nUR1                  X|5      nU
R2                  R/                  SS5      nSR5                  [6        U/5      n[        5       nUR                  SU5        UR                  SU
R,                  5        UR                  SU5        UR                  SU5        UR                  SU5        [9        5       nUR;                  [        5        UR=                  S5        UR?                  U5        URA                  U
R,                  5        URC                  U
R,                  5        URE                  S5        URG                  S5        URI                  U5        URK                  5         URM                  S5        U RO                  UU[        [        SS5        U RO                  UU[        [        S S!5        U RQ                  UU5        GM<     U	RS                  U	5        U RU                  5         g )"Nr8   TVRADIO)rT   AZc                 r   > U R                   R                  5       R                  5       R                  T5      $ r   )r   rO   
capitalizerP   tsAZs    r    <lambda>showWeb.<locals>.<lambda>   s#    !''--/"<"<">"I"I#"Nr#   c                 R    U R                   R                  5       R                  5       $ r   r   rO   rc   re   s    r    rg   rh      s    0J0J0Lr#   keyc                 R    U R                   R                  5       R                  5       $ r   rj   rk   s    r    rg   rh      s    !''--/2L2L2Nr#   r=   u8   [COLOR red]Problème de lecture avec la playlist[/COLOR]r$   directT)	noTextBoxr   sportsportsz
(en clair)+P_L_U_S/sMovieTitle
sThumbnailsDescEpgDataplay__r      
direct_epgGuide tv Directsoir_epgGuide tv Soir)+r	   r   rJ   r:   rA   r]   existfiltersortedr   r9   addTextr/   r   getEpgrR   r   VScreate	SITE_NAMEVSupdate
iscanceledr   r   replacegetChannelEpgr   joinsRootArtr
   setSiteNamesetFunctionsetDescriptionsetTitlesetFileNamesetIconsetMetasetThumbnailsetDirectTvFanartsetCatcreateSimpleMenu	addFolderVScloser1   )r3   rU   rT   rX   stringr5   cEpgEPGtotal	progress_r   sThumbchannelNamerx   url2thumboGuiElementrf   s                    @r    r   r   w   s   6D35!**95Dt|	T"H##D))$--d3NPXY&&LM((NO"9";,,Y	B_&`a vkk"hk6HJ''	2	Ey0##%%ZZF!++--gh?GGUWXK&&s8E ::%%c95DHHh/0E&=&?##00DA#00L#00uE#00%@#00C@%-K##O4##H-&&u-  -##EKK0)"$$U+))+q!!!+/FYhjv  yJ  K!!+/FYhjt  wF  GNN;(?@O R 	)$r#   c                      [        5       n U R                  S5      nU R                  S5      n[        5       R                  USUS9  g )Nrv   ry   ro   )textr   rJ   r   view_epg)rU   sTitler   s      r    r|   r|      s?    35#,,];F!**95DFOOFH4O0r#   c                  n    [        5       n U R                  S5      n[        5       R                  US5        g )Nrv   soirr   )rU   r   s     r    r~   r~      s+    35#,,];FFOOFF#r#   c                     [        5       n U R                  S5      R                  SS5      n[        R	                  S5      nUS:X  a  [        5       R                  S5        g SU;   a  SU;   a  [        U5      nS	U;   a4  [        R                  " S
SR                  U5      5      n[        US   5      n[        5       R                  U5        g )Nr8   rt   rs   enregistrement_activerfalsez1Merci d'activer l'enregistrement dans les options[]pluginzurl=(.+?)&ampr$   r   )r   rJ   r   ADDON
getSettingr   VSok
getRealUrlrefindallr   r   r   programmation_enregistrement)rU   rT   enregistrementIsActifurls       r    enregistrementr      s    35!**95==iMD!,,-EF'KL
d{sd{$4jj"''$-8s1v44T:r#   c                     [        5       n [        5       nUR                  S5      n[        5       n[        R
                   H@  nUR                  SU5        UR                  SU5        U R                  [        SUSU5        MB     [        R                   H@  nUR                  SU5        UR                  SU5        U R                  [        SUSU5        MB     U R                  5         g )Nr8   ra   showTVr@   r	   r   rJ   r   r   digitsr9   r.   r/   ascii_uppercaser1   r3   rU   rT   r5   is        r    r?   r?      s    6D35!**95D57]],,Y=,,T15OXq(<ST 
 ##,,Y=,,T15OXq(<ST $
 	r#   c                     [        5       n [        5       nUR                  S5      n[        5       n[        R
                   H@  nUR                  SU5        UR                  SU5        U R                  [        SUSU5        MB     [        R                   H@  nUR                  SU5        UR                  SU5        U R                  [        SUSU5        MB     U R                  5         g )Nr8   ra   r   r@   r   r   s        r    showAZRadior      s    6D35!**95D57]],,Y=,,T15OY8=TU 
 ##,,Y=,,T15OY8=TU $
 	r#   c            	        ^ [        5       n [        5       nUR                  S5      n[        U5      nUR	                  5       n[        5       nSnUR                  XF5      nUS   (       Ga  [        5       R                  [        5      nUR                  S5      (       a0  UR                  S5      m[        U4S jUS   5      n	[        U	S S9n	O[        US   S	 S9n	[        U	5      n
[        5       nU	 GH`  nUR                  X5        UR!                  5       (       a    GO8UR#                  SUS   5        UR#                  S
US   5        UR#                  SS5        [%        5       nUR'                  [(        5        UR+                  S5        UR-                  US   5        UR/                  US   5        UR1                  S5        UR3                  S5        UR5                  5         UR7                  S5        U R9                  X[(        [(        SS5        U R9                  X[(        [(        SS5        U R;                  X5        U R=                  X5        GMc     UR?                  U5        U RA                  5         g )Nr8   z&<title>(.+?)</title><link>(.+?)</link>r   ra   c                 d   > U S   R                  5       R                  5       R                  T5      $ Nr   )rO   rc   rP   rd   s    r    rg   showTV.<locals>.<lambda>  s#    adjjl&=&=&?&J&J3&Or#   rD   c                 D    U S   R                  5       R                  5       $ r   rO   rc   rk   s    r    rg   r     s    !A$**,2I2I2Kr#   rl   c                 D    U S   R                  5       R                  5       $ r   r   rk   s    r    rg   r   !  s    adjjl6M6M6Or#   rv   rw   r   rz   r{   r|   r}   r~   r   )!r	   r   rJ   r   rM   r   parser   r   r   r   r   r   rR   r   r   r   r9   r
   r   r/   r   r   r   r   r   r   r   r   createContexMenuBookmarkr   r   r1   )r3   rU   rT   rV   sHtmlContentoParsersPatternaResultr   r   r   r5   aEntryr   rf   s                 @r    r   r     s,   6D35!**95D%d+O"**,LiG7HmmL3GqzzJ''	2	 "''--(11$7COQXYZQ[\FF(KLFGAJ,OPFF"9";Fy0##%%#00F1IF#00q	J#00xH%-K##O4##H-  +##F1I.)"))+q!!!+Yhjv  yJ  K!!+Yhjt  wF  G))+ONN;@1 4 	)$r#   c                  N   [        5       n [        5       nUR                  S5      R                  SS5      nUR                  S5      nUR                  S5      nUR                  S5      nSU;   a  SU;   a  [	        U5      nS	U;   a  [        5       nUR                  [        5        UR                  U5        UR                  S
S5      nUR                  U5        UR                  U5        UR                  U5        SSKJn  U" 5       nUR                  5         UR                  U5        UR!                  5         g [#        5       R%                  U5      n	U	(       a<  U	R'                  U5        U	R)                  U5        [#        5       R+                  X	X$5        U R-                  5         g )Nr8   rt   rs   rv   rw   rx   r   r   zftven.fr z%20r   )cPlayer)r	   r   rJ   r   r   r
   r   r/   r   setMediaUrlr   r   resources.lib.playerr   clearPlayListaddItemToPlayliststartPlayerr   checkHostersetDisplayNamer   
showHosterr1   )
r3   rU   rT   r   rw   rx   r   r   oPlayeroHosters
             r    rz   rz   D  s`   6D35!**95==iMD#,,];F'00>J"++G4E d{sd{$ T!m0V$||C'%  ,""5)0)!!+. ,**40""6*'L##D4D r#   c                 h   [        5       n[        nU nSnSnS n[        R                  " SU 5      nU(       a  [	        UR                  S5      5      n[        R                  " SU 5      nU(       a  [        UR                  S5      5      n[        R                  " SU 5      nU(       a  UR                  S5      n[        R                  " SU 5      nU(       a  UR                  S5      n[        R                  " SU 5      nU(       a  UR                  S5      n[        R                  " SU 5      nU(       a  UR                  S5      n[        R                  " S	U 5      nU(       a  UR                  S5      n[        U5      nU(       a4  UR                  S5        UR                  S
S5        UR                  U5        U(       a2  SS Kn	U	R                  U5      nU H  n
UR                  XU
   5        M     UR                  5       nU(       a   UR                  X5      nU(       a  US   S   nUS-   U-   nU$ )Nr$   z)\[[DECODENRJ]+\](.+?)(?:(?:\[[A-Z]+\])|$)rD   z-\[[BRIGHTCOVEKEY]+\](.+?)(?:(?:\[[A-Z]+\])|$)z%\[[REGEX]+\](.+?)(?:(?:\[[A-Z]+\])|$)z"\[[UA]+\](.+?)(?:(?:\[[A-Z]+\])|$)z#\[[URL]+\](.+?)(?:(?:\[[A-Z]+\])|$)z$\[[HEAD]+\](.+?)(?:(?:\[[A-Z]+\])|$)z(\[[POSTFORM]+\](.+?)(?:(?:\[[A-Z]+\])|$)zAccept-Encodingidentityr   z|User-Agent=)r   rL   r   search	decodeNrjgroupgetBrightcoveKeyr   setRequestTyperK   addParametersLinejsonloadsrM   r   )chainr   UA2r   regexparamheadrrV   r   ar   aResult2s                r    r   r   t  s   iG
C
CEED
		=uEA
#
		A5IAqwwqz*
		95AA

		6>Aggaj
		7?Aggaj
		8?Awwqz 			<eDA
%c*O&&q)&&'8*E))%0zz$A**1!W5 "**,L==51+a.C


$CJr#   c                    [        U 5      nUR                  5       n[        R                  " SU5      R	                  S5      n[        R                  " SU5      R	                  S5      nSU R                  S5      S   -   S-   U R                  S5      S   -   S-   nXSS-   U R                  S5      S   -   S	-   U-   S
-   -  n[        U5      nUR                  5       n[        R                  " SU5      R	                  S5      nU$ )Nzdata-program_title="([^"]+)"rD   zdata-ref="([^"]+)"z,https://www.nrj-play.fr/compte/live?channel=ru      z	&channel=z&title=z&ref=z&formId=formDirectz"contentUrl" content="([^"]+)")r   rM   r   r   r   rN   )drV   r   r   idsr   dataUrls          r    r   r     s    %a(O"**,LII4lCII!LE
))(,
7
=
=a
@C
81773<?
J[
X[\[b[bcf[ghi[j
jmv
vC;a07:S@CWWWC%c*O"**,Lii8,GMMaPGNr#   c                 r   [        U 5      nUR                  5       nSU ;   Ga  [        R                  " SU5      R	                  S5      n[        SU R                  S5      S   -   U-   5      nUR                  5       n[        R                  " SU5      nUR	                  S5      nUR	                  S5      n[        S5      nUR                  5       R                  5       nU R                  S5      S   R                  S	5      S
   n[        R                  " SU-   S-   U5      R	                  S5      R                  SS5      nOJ[        R                  " SU5      nUR	                  S5      nUR	                  S5      nUR	                  S5      nSU< SU< S3n[        U5      nUR                  5       n[        R                  " SU5      R	                  S5      n	SU< SU< 3n[        U5      nUR                  SSU	-   5        UR                  5       n[        R                  " SU5      R	                  S5      nU$ )Nrmcdecouvertez=<script type="application/javascript" src="([^"]+)"></script>rD   zhttps://ru   rF   zN="([^"]+)",y="([^"]+)"\)zKhttps://static.bfmtv.com/ressources/next-player/cleo-player/playerBridge.js.r   z	
(.+?): ''z            r$   zg<div class="video_block" id="video_player_.+?" accountid="([^"]+)" playerid="([^"]+)" videoid="([^"]+)"r   zhttp://players.brightcove.net/z_default/index.min.jszpolicyKey:"(.+?)"z5https://edge.api.brightcove.com/playback/v1/accounts/z/videos/Acceptzapplication/json;pk=z"sources":.+?src":"([^"]+)")	r   rM   r   r   r   rN   lowerr   rK   )
rT   rV   r   r   resultplayervideoIDaccount	policyKeys
             r    r   r     s   %d+O"**,L$iiWYefllmno)*tzz#q7I*IC*OP&..06EaQ)*wx&..0668ZZ_Q%%c*1-))L2-3\BHHKSSTbdfg   E  GS  T,,q/aQHOQW
XC%c*O"**,L		-|<BB1EIQXZ_
`C%c*O""8-Ci-OP"**,L
))1<
@
F
Fq
ICJr#   r   )8r   r   resources.lib.comaddonr   r   r   r   resources.lib.enregistrementr   resources.lib.epgr   resources.lib.gui.guir	   resources.lib.gui.guiElementr
   resources.lib.gui.hosterr   +resources.lib.handler.inputParameterHandlerr   ,resources.lib.handler.outputParameterHandlerr   $resources.lib.handler.requestHandlerr   resources.lib.parserr   resources.lib.utilr   r/   r   	SITE_DESC
getUrlMainURL_MAINr:   rA   TV_TV	CHAINE_TVrL   r   r   r   r   r6   r   r,   r]   r   r|   r~   r   r?   r   r   rz   r   r   r   r*   r#   r    <module>r     s    
  G G : " & 4 / N P @ ( &%	&	=##O4
kn	i 	 MH "!HIX1$;&&&5p%!P9x"%r#   