
    `i45                         S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	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
5      rg)    N)	b64encode)dialogaddonaddonManagerVSlogisMatrix)cGui)
cHosterGui)cInputParameterHandler)cOutputParameterHandler)UnquotePlusc                   0    \ rS rSrS rSS jrS rS rSrg)	UpNext   c                 >	   UR                  S5      S:X  d  g U R                  5       (       d  g [        5       nUR                  S5      nU(       d  g UR                  S5      nUR                  S5      nUR                  S5      nU(       d!  [	        UR                  5       5      nU(       d  g UR                  S5      nU(       d5  [        R                  " SUR                  S	5      5      R                  S
5      nUn[        U5      n	U	S
-   n
SU
-  nUR                  S5      n[        5       nUR                  SU5        UR                  SU5        UR                  SU5        UR                  SU5        UR                  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 [        R                  S   nU R                  UUXU
UUU5      u  nnnnnU[        R                  S'   U(       d  g UR!                  SS5      nUS-  nU(       a  USU-  -  nUSU-  -  n[#        U5      nU(       a  USU-  -  nUR                  S5      nUR                  S5      nUR                  S5      n[        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S5        UR                  S S!5        UR                  S"S#5        UR                  S$[	        U5      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5        UR                  SU5        UR                  5       nS&U-  nUn[%        [%        U	S'UU(       a  UOS(SU	-  S(S(US(S(S(S(S(S).S*9[%        U
S'UU(       a  UOS(UUUUS(S(UUUS).S*9US+9nU R'                  U5        g ! [(         a  n[+        S,U-  5         S nAg S nAff = f)-N	mediatypeepisode
sourceNamesSeasonsTmdbIdsEpisodetvshowtitlez\[\/COLOR\](.+?)\[COLORtitle   z%02d	saisonUrlsiteUrlsMovieTitlesHosterIdentifier
realHosternextSaisonFuncsLangsRes   z & z and z - zS%szE%sz (%s)	sourceFav	sFileNamesTitlesCat   sMeta   sFavplay	sMediaUrltvShowTitlez?plugin://plugin.video.vstream/?site=cHosterGui&function=play&%sr    )thumbztvshow.clearartztvshow.clearlogoztvshow.fanartztvshow.landscapeztvshow.poster)	episodeidtvshowid	showtitleseasonr   r   plotart)current_episodenext_episodeplay_urlzUpNext : %s)getItemValueuse_up_nextr   getValuestr
getEpisoderesearchgroupintr   addParametergetParameterAsUrisysargvgetMediaUrlreplacer   dictnotifyUpnext	Exceptionr   ) self
guiElementoInputParameterHandler	sSiteNamesSaisonr   r   r.   r   
numEpisodenextEpisodesNextEpisoder   oOutputParameterHandlersParamsr   sRealHosterr    r!   r"   	oldParamsr-   	nextTitlesDescsThumbr%   r   r$   url
sThumbnailnextInfoes                                    D/home/kodi/.kodi/addons/plugin.video.vstream/resources/lib/upnext.pyrR   UpNext.nextEpisode   s    &&{3y@ !! "8!9*33LA	 )11)< )11)< *22:>:0023H !--m<))$=z?V?VW^?_`ffghiK!]
 1n+*33K@	"9";,,Y	B,,]KH,,]KH,,Y@);;=2;;<OP,55lC/889IJ&//8%..v6a	%IEIEUEUV_aoqx  DO  QV  X\  ^i  FjBy)UF $CHHQK #++E7;IIUW_,	--I#I.IWu_,	.77DI,55i@G.77DI&=&?##001DFWX#00{K#00yI#00iH#009E#00;#00!<#00@#00c)nM#00iH#001A>R#00GD#00\J#00%@#00>#00L#00GD $00GD#00iH .??AGSV]]C  J $()&-72"Z/!++-,.)+,.)+!" "))&-72(#!++-,.)3,6)3" G$HL h' 	%-!#$$	%s    A
Q: #IQ: :
RRRc                 <    SU-  [         R                  S'   [        SU-  U/S9n[        X5      nU" 5         Sn/ n[        5       R                  5        H  u  nnnUR                  UU/5        M     U GHd  u  nnUR                  S	S
5      S
   n[        S UR                  S5       5       5      nUS   nUS:X  a  MJ  U(       a  SU;   a  [        US   5      U:w  a  Mk  U(       a!  SU;   a  US   R                  SS5      U:w  a  M  U(       a-  SU;   a'  US   (       a  [        US   5      [        U5      :w  a  M  SU;   a  US   (       a  [        US   5      U:w  a  M  SU;   a  US   OS nUR                  5       nUR!                  5       nU(       a  Un	OUR#                  5       n	U
(       d  UR%                  5       n
U	(       d  SU;   a  [        US   5      OS n	SU;   aI  US   (       a?  ['        5       R)                  US   5      nU(       d  GM  UR+                  5       nUU:w  a  GM  U=nnSU;   a  US   =nnSU;   a  US   nUU:w  a  GM  UR-                  S5      nSU;   a  US   (       a  [        US   5      nU
(       d  SU;   a  US   (       a  [        US   5      n
U(       a  UXX4s  $ U R/                  XX4XVXxXU5      u  nppU(       d  GM`  UXX4s  $    U(       a  WXX4$ g! [         a'  n[        SU-   S-   [        U5      -   5         S nAgS nAff = f)Nz?%sr#   zresources.sites.%s)fromlistzcould not load site: z error: )NNNNNr/   ?r   c              3   B   #    U  H  oR                  S 5      v   M     g7f)=N)split).0params     r_   	<genexpr>%UpNext.getMediaUrl.<locals>.<genexpr>   s     L9K;;s++9Ks   &function	DoNothingr!   r"   + r   r   r-   r&   sHostr   r   r0   rZ   rY   )rE   rF   
__import__getattrrK   r   r=   r	   getEpisodeListingappendrf   rI   r   rH   rB   getVideoInfoTag
getTagLinegetLabelgetPlotr
   checkHostergetRealHostgetArtrG   )rL   rO   	sFunctionrU   rP   iEpisoder!   r"   r   r&   rY   rZ   pluginsrl   r^   r-   episodesLinkssUrllistItemisFolderaParamsinfoTagtagLineoHosterhostNamerealHosts                             r_   rG   UpNext.getMediaUrl   sF   	0'/CHHQK !5	!AYKXGw2HJ
 	 (,(@(@(B$D(H  $!12 )C ,ND(jja(+GLs9KLLG
+IK'G+GG<L0MQV0V')gfo.E.Ec3.OSW.W9/GI4F3wW`OaKbfijqfrKrW$)<WZEXAY]eAe0;w0F,DI..0G((*G !**,);Cw;NWX%67TX'!gg&6$,22773CD"..000"33Hxw&&-l&;;8"g-"#67,,__W-F7"wx'8$WX%67W/GG4D#GG$45EAA :>9I9I)`grz  DH  ]c  lr  :s6HiyEAAy ,| Y==+Y  	0)I5
BSVKL/	0s   6K* *
L4LLc                     [         R                  " U5      nUR                  S5      n[        U5      n[	        5       (       a  UR                  S5      nSSSSS-  SU/S	.S
.n[         R                  " U5      n[        R                  " U5      n[         R                  " U5      nUS   S:H  $ ! [         a  nSS K
nUR                  5          S nAgS nAff = f)Nzutf-8asciiz2.0r   zJSONRPC.NotifyAllz	%s.SIGNALzplugin.video.vStreamupnext_data)sendermessagedata)jsonrpcidmethodparamsresultOKr   F)jsondumpsencoder   r   decodexbmcexecuteJSONRPCloadsrK   	traceback	print_exc)rL   r   	next_datajsonrpc_requestrequestresponser^   r   s           r_   rJ   UpNext.notifyUpnext  s    	

4(I!((1IY'Dzz{{7+ !-),BB,!F		O jj1G**73Hzz(+HH%-- 	!	s   B*B- -
C7CCc                 l   [        5       nUR                  S5      S:X  a  gSn [        R                  " U5        g! [         a    [        5       R                  UR                  S5      5      (       d  UR                  SS5         g[        5       (       a  [        R                  " SU-  5      nO[        R                  " SU-  5      n[        R                  " U5      (       a4  [        5       R                  U5      (       d  UR                  SS5         g g[        5       R!                  U5         gf = f)NupnextfalseFzservice.upnextTi)w  z"special://home/addons/%s/addon.xml)r   
getSetting	xbmcaddonAddonRuntimeErrorr   VSyesnoVSlang
setSettingr   xbmcvfstranslatePathr   existsr   enableAddoninstallAddon)rL   addons	upnext_id	addon_xmls       r_   r;   UpNext.use_up_next&  s    X&'1$		OOI& 	8##FMM%$899!!(G4zz#112VYb2bc	 ../SV_/_`	~~i(( $~11)<<%%h8 ++I6)	s   ; A	D3BD3D32D3 N)r/   r/   r/   )	__name__
__module____qualname____firstlineno__rR   rG   rJ   r;   __static_attributes__r       r_   r   r      s    X%tS,l@r   r   )r   r   r   r   rE   r?   base64r   resources.lib.comaddonr   r   r   r   r   resources.lib.gui.guir	   resources.lib.gui.hosterr
   +resources.lib.handler.inputParameterHandlerr   ,resources.lib.handler.outputParameterHandlerr   resources.lib.utilr   r   r   r   r_   <module>r      s;        
 	  O O & / N P *q qr   