
    `i1L                        S SK r S SKrS SKrS SKrS SKrS SKr   \R                  " S5      r " S S5      r  " S S5      r	  " S S5      r
 " S	 S
\5      r " S S5      r  " S S\R                  5      r  " S S\R                   5      r \R$                  4S jrS rS rS rS rS rS rS rS r " S S5      r " S S5      rg)    Nzplugin.video.vstreamc                   <    \ rS rSrS
S jrS rS rS rS rS r	S	r
g)addon/   Nc                     Xl         g NaddonId)selfr	   s     F/home/kodi/.kodi/addons/plugin.video.vstream/resources/lib/comaddon.py__init__addon.__init__0   s        c                     U R                   (       a.  [        R                  " U R                   5      R                  5       $ [        R                  5       $ r   )r	   	xbmcaddonAddonopenSettingsADDONVSr
   s    r   r   addon.openSettings3   s3    ?C||yt||,99;gQXQeQeQggr   c                     U R                   (       a/  [        R                  " U R                   5      R                  U5      $ [        R                  U5      $ r   )r	   r   r   
getSettingr   )r
   keys     r   r   addon.getSetting6   s8    @Dyt||,77<iRYRdRdehRiir   c                     U R                   (       a/  [        R                  " U R                   5      R                  X5      $ [        R                  X5      $ r   )r	   r   r   
setSettingr   )r
   r   values      r   r   addon.setSetting9   s8    GK||yt||,77CwY`YkYkloYwwr   c                     U R                   (       a/  [        R                  " U R                   5      R                  U5      $ [        R                  U5      $ r   )r	   r   r   getAddonInfor   )r
   infos     r   r   addon.getAddonInfo<   s8    CG<<yt||,99$?oU\UiUijnUoor   c                     U R                   (       a8  [        [        R                  " U R                   5      R	                  U5      5      $ [        [
        R	                  U5      5      $ r   )r	   VSPathr   r   getLocalizedStringr   )r
   langs     r   VSlangaddon.VSlang?   s_    QUQ]Q]vioodll3FFtLM  	Lcijq  kE  kE  FJ  kK  dL  	Lr   r   r   )__name__
__module____qualname____firstlineno__r   r   r   r   r   r&   __static_attributes__ r   r   r   r   /   s%    hjxpLr   r   c                   d    \ rS rSrS rSS jrSS jrSS jrS rS r	S r
SS	 jrS
 rSS jrSrg)dialogM   c                 8    [         R                  " 5       U l        g r   )xbmcguiDialogDIALOGr   s    r   r   dialog.__init__N   s    nn&r   c                 8    U R                   R                  X!5      $ r   )r4   okr
   desctitles      r   VSokdialog.VSokQ   s    {{~~e**r   c                 8    U R                   R                  X!5      $ r   )r4   yesnor8   s      r   VSyesnodialog.VSyesnoT   s    {{  --r   c                 8    U R                   R                  X!5      $ r   )r4   selectr8   s      r   VSselectdialog.VSselectW   s    {{!!%..r   c                 :    U R                   R                  XU5      $ r   )r4   numeric)r
   
dialogTypeheadingdefaultts       r   rF   dialog.numericZ   s    {{"":AAr   c                 :    U R                   R                  XU5      $ r   )r4   browse)r
   typerH   sharess       r   VSbrowsedialog.VSbrowse]   s    {{!!$88r   c                     [        U5      S:X  a  g[        U5      S:X  a  US   $ U R                  R                  [        5       R	                  S5      U5      nUS:  a  X#   $ g)Nr       iv  )lenr4   rB   r   r&   )r
   	list_quallist_urlrets       r   VSselectqualdialog.VSselectqual`   sZ    x=Ax=AA;kk  !6	B8= r   c                     [        5       R                  S5      S:X  a  SnU R                  R                  [	        U5      [	        U5      [
        R                  US-  U5      $ )NBlock_Noti_soundtrueT  )r   r   r4   notificationstrr2   NOTIFICATION_INFO)r
   r9   r:   isecondssounds        r   VSinfodialog.VSinfol   sP    G12f<E{{''E
CIw?X?XZbcgZginoor   c                     U R                   R                  SS[        U5      -   [        R                  S5      [        S[        U5      -   5      4$ )NvStreamzErreur: i  )r4   r_   r`   r2   NOTIFICATION_ERRORVSlog)r
   es     r   VSerrordialog.VSerrorr   s_    {{''	:A3FHbHbdhikpq{  B  CD  E  rE  lF  F  	Fr   c                 8    U R                   R                  X!5      $ r   )r4   
textviewerr8   s      r   
VStextViewdialog.VStextViewu   s    {{%%e22r   )r4   N)rg   )rg   rS   F)r(   r)   r*   r+   r   r;   r?   rC   rF   rO   rY   rd   rk   ro   r,   r-   r   r   r/   r/   M   s7    '+./B9
pF3r   r/   c                   0    \ rS rSrSS jrS rS rS rSrg)	empty   c                     g r   r-   )r
   r/   totaltextsearchs        r   VSupdateempty.VSupdate       r   c                     g r   r-   r   s    r   
iscanceledempty.iscanceled   rz   r   c                     g r   r-   )r
   r/   s     r   VScloseempty.VSclose   rz   r   c                     g)Nd   r-   r   s    r   getProgressempty.getProgress   s    r   r-   NrR   F)	r(   r)   r*   r+   rx   r|   r   r   r,   r-   r   r   rr   rr      s    r   rr   c                   H    \ rS rSrSrSS jrS rS rSS jrS r	SS	 jr
S
rg)CountdownDialog      c                    Xl         X`l        Xpl        X l        X0l        X@l        U(       a  [        R                  " S5      (       a  [        R                  5       nO[        R                  " 5       nU R
                  (       d  SU-  n[        5       (       d  UR                  U R                   X#U5        O(UR                  U R                   US-   U-   S-   U-   5        UR                  S5        Xl        g S U l        g )Nz Window.IsVisible(progressdialog)Expires in: %s seconds
r   )rH   	countdownintervalline1line2line3xbmcgetCondVisibilityCustomProgressDialogProgressDialogr2   DialogProgressisMatrixcreateupdatepd)	r
   rH   r   r   r   activer   r   r   s	            r   r   CountdownDialog.__init__   s    " 


%%&HII)88:++-::09<::		$,,e<		$,,u(<t(Ce(KLIIcNGDGr   c                     U $ r   r-   r   s    r   	__enter__CountdownDialog.__enter__   s    r   c                 X    U R                   b  U R                   R                  5         U ? g g r   )r   close)r
   rM   r   	tracebacks       r   __exit__CountdownDialog.__exit__   s#    77GGMMO r   Nc                    Uc  / nUc  0 nU" U0 UD6nU(       a  U$ U R                   Gb  [        R                  " 5       nU R                  =pgU R                  nUS:  a  [	        [
        R                  5       H  n	[        R                  " [        US-  [
        R                  -  5      5        U R                  5       (       a    g U[        [        R                  " 5       U-
  5      -
  nUS:  a  Sn[        US-  U-  5      n
U R                  (       d  SU-  OSnU R                  XS9  M     U" U0 UD6nU(       a  U$ US:  a  M  g g g )Nr   r^   r   r   rR   )r   )r   timer   r   ranger   _CountdownDialog__INTERVALSr   sleepintis_canceledr   r   )r
   funcargskwargsresultstartexpires	time_leftr   _progressr   s               r   r   CountdownDialog.start   s'   <D>Ft&v&M77IIKE"&..0G}}Ha-::;AJJs8d?_5P5P#PQR'')) '#diikE.A*B BI 1}$%	"9s?W#<=HHL

4y@XZEKKK6 < t.v.!M a-	 r   c                 R    U R                   c  gU R                   R                  5       $ NF)r   r|   r   s    r   r   CountdownDialog.is_canceled   s!    77?77%%''r   c                 8   U(       d  U R                   nU(       d  U R                  nU(       d  U R                  nU R                  bT  [	        5       (       d  U R                  R                  XX45        g U R                  R                  XS-   U-   S-   U-   5        g g )Nr   )r   r   r   r   r   r   )r
   percentr   r   r   s        r   r   CountdownDialog.update   sq    JJEJJEJJE77::wu<wu(<t(Ce(KL	 r   )r   rH   r   r   r   r   r   )rR   rR   rR   T<   r   )NN)rR   rR   rR   )r(   r)   r*   r+   r   r   r   r   r   r   r   r,   r-   r   r   r   r      s&    K.
":(Mr   r   c                   H    \ rS rSrSrS rS
S jrSS jrS rSS jr	S r
S	rg)r      Nc                     SU l         g )Nr   COUNTr   s    r   r   progress.__init__   s	    
r   c                    [         R                  " 5       nUS:w  a  US:w  a
  [        5       $ [         R                  " 5       nUS:w  a  US:w  a
  [        5       $ [        R
                  S :X  a  U(       d  [        5       R                  S5      nO[        U5      nU(       a  [         R                  " 5       [        l        O[         R                  " 5       [        l        [        R
                  R                  X5        U $ )Ni)'  i,'  i'  i'  u  )r2   getCurrentWindowIdrr   getCurrentWindowDialogIdr   PROGRESSr   r&   r`   r   DialogProgressBGr   )r
   r:   r9   largecurrentWindowdlgIds         r   VScreateprogress.VScreate   s      224E!mu&<7N 002D=Ue^7N$u-E
$+$:$:$<!$+$<$<$>!$$U1r   c                 \   [         R                  (       d  g U(       d  [        S5      R                  S5      S:X  a  g U(       d  [	        5       R                  S5      nU =R                  S-  sl        [        [        U R                  S-  5      U-  5      nUS[        U R                  5      -   S-   [        U5      -   S	-   -  n[        [         R                  [        R                  5      (       a   [         R                  R                  XS5        g [         R                  R                  XSS
9  g )Nu'  rw   r]   r   rS   r   z : /r   )message)r   r   windowgetPropertyr   r&   r   r   floatr`   
isinstancer2   r   r   )r
   r/   ru   rv   rw   iPercents         r   rx   progress.VSupdate  s      &-33H=G'..'D

a
uTZZ#-.67DJJ'#-E
:TAAh'')?)?@@$$X5$$X$?r   c                     [        [        R                  [        R                  5      (       a  [        R                  R                  5       $ gr   )r   r   r   r2   r   r|   r   s    r   r|   progress.iscanceled   s3    h'')?)?@@$$//11r   c                     [         R                  (       d  g [        S5      R                  S5      S:X  a  g [         R                  (       a,  [         R                  nS [         l        UR	                  5         g g )Nr   rw   r]   )r   r   r   r   r   )r
   r/   
prgToCloses      r   r   progress.VSclose%  sU      %=$$X.&8!**J $H r   c                     U R                   $ r   r   r   s    r   r   progress.getProgress1  s    zzr   r   )rR   rR   Fr   r   )r(   r)   r*   r+   r   r   r   rx   r|   r   r   r,   r-   r   r   r   r      s&    H6@$

r   r   c                       \ rS rSrS rSrg)r   i=  c                     g r   r-   )r
   winIDs     r   r   window.__init__>  rz   r   r-   N)r(   r)   r*   r+   r   r,   r-   r   r   r   r   =  s    r   r   c                   (    \ rS rSrSS jrSS jrSrg)listitemiJ  c                     g r   r-   )r
   labellabel2s      r   r   listitem.__init__K  rz   r   c                 B   SnU R                  S5      nU(       a  [        U5      OSnU< SU< SU< 3nU(       a  USUR                  5       -  -  nSU-  nU R                  X5        SU-  nU R                  US	U-  5        U R                  S[	        US
-   5      5        g )Nzplugin://plugin.video.vstream/nbcontextmenur   z?site=z
&function=z&%szcontextmenulabel(%d)zcontextmenuaction(%d)zRunPlugin(%s)rS   )r   r   getParameterAsUrisetPropertyr`   )	r
   sFile	sFunctionsTitleoOutputParameterHandlersPluginPathnbContextMenusUrlpropertys	            r   addMenulistitem.addMenuO  s    6((9.;M*+6yI"E3EEGGGD)M9**]:?T#9:#ma.?*@Ar   r-   N)rR   rR   )F)r(   r)   r*   r+   r   r   r,   r-   r   r   r   r   J  s    Br   r   c                     [         R                  S5      S:X  a>  [        R                  " S5      SS S:  a  [        R                  nO[        R
                  n[        R                  " S[        U 5      -   U5        g !    g = f)Ndebugr]   system.buildversionr      19z	[PLUGIN] vStream: )r   r   r   getInfoLabelLOGINFO	LOGNOTICElogr`   )rj   levels     r   ri   ri   h  si    
w'61  !67!<D'#a&0%8s   A:A= =Bc                  .    [         R                  " S5      $ )NzContainer.Refreshr   executebuiltinr-   r   r   rx   rx   v  s    233r   c                  0    [         R                  " S5        g )NzActivateWindow(busydialog)r  r-   r   r   VSshow_busyr  z  s    45r   c                      [         R                  " S5        [         R                  " S5      (       a4  [         R                  " S5        [         R                  " S5      (       a  M3  g g )NzDialog.Close(busydialog)zWindow.IsActive(busydialog)r   )r   r  r   r   r-   r   r   VShide_busyr  ~  sB    23

 
 !>
?
?

3 
 
 !>
?
?r   c                  T     [         R                  " S5      n U SS S:  a  gg!    g= f)Nr   r   r   17TFr   r   versions    r   	isKryptonr    6    ##$9:1Q<4   # 'c                  T     [         R                  " S5      n U SS S:  a  gg!    g= f)Nr   r   r   r   TFr
  r  s    r   r   r     r  r  c                  T     [         R                  " S5      n U SS S:  a  gg!    g= f)Nr   r   r   20TFr
  r  s    r   isNexusr    r  r  c                     [        5       (       a  [        R                  " U 5      nU$ [        R                  " U 5      nU$ r   )r   xbmcvfstranslatePathr   )pathSpecialpaths     r   r#   r#     s7    zz$$[1 K !!+.Kr   c                      SSSSS/0SS.n [         R                  " U 5      n[        R                  " U5      n[         R                  " U5      S   S	   nU$ )
N2.0zProfiles.GetCurrentProfile
properties	thumbnaillockmoderS   jsonrpcmethodparamsidr   r   )jsondumpsr   executeJSONRPCloads)requestreqresponsenames       r   VSProfilr+    sb     .;
3
 G **W
C""3'H::h)'2DKr   c                       \ 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 rS rSrg)siteManageri  sitesr   
cloudflarer   urlc                    [        S5      U l        S U l        [        5       nUS:X  a  [        S5      nO[        SU-   S-   5      n [        U5      R	                  S5      U l         [        U R
                  S5       n[        R                  " U5      U l
        S S S 5        g ! [         a    [        U5      U l         NXf = f! , (       d  f       g = f! [         ap    [        R                  " U R                  U5        [        U R
                  S5       n[        R                  " U5      U l
        S S S 5         g ! , (       d  f        g = ff = f)Nz?special://home/addons/plugin.video.vstream/resources/sites.jsonzMaster userzBspecial://home/userdata/addon_data/plugin.video.vstream/sites.jsonz!special://home/userdata/profiles/z+/addon_data/plugin.video.vstream/sites.jsonzutf-8r)r#   defaultPathdefaultDatar+  decodepropertiesPathAttributeErroropenr#  loaddataIOErrorr  copy)r
   r*  r  fs       r   r   siteManager.__init__  s    ""cd z= ^_D=DGttuD	/"(,"5"5g">D
	)d))3/1 IIaL	 0/  	/"(,D	/
 0/ 	)LL))40d))3/1 IIaL	 0///	)s[   B! &C <CC !B>=B>
CC C AED9/E9
E	EEc                 >    U R                  XR                  5      S:H  $ NTrue)getDefaultPropertyACTIVEr
   
sourceNames     r   isEnablesiteManager.isEnable  s    &&z;;?6IIr   c                 >    U R                  XR                  5      S:H  $ r@  )rB  
CLOUDFLARErD  s     r   isCloudFlaresiteManager.isCloudFlare  s    &&z??CvMMr   c                 >    U R                  XR                  5      S:H  $ r@  )r   rC  rD  s     r   isActivesiteManager.isActive  s    
KK8FBBr   c                 <    U R                  XR                  U5        g r   )r   rC  )r
   rE  states      r   	setActivesiteManager.setActive  s    [[%8r   c                 J    [        U R                  XR                  5      5      $ r   )r`   rB  URL_MAINrD  s     r   
getUrlMainsiteManager.getUrlMain  s    4**:}}EFFr   c                 h    U R                   U R                      H  nU R                  US5        M     g r   r:  SITESrQ  rD  s     r   
disableAllsiteManager.disableAll  s*    ))DJJ/JNN:u- 0r   c                 h    U R                   U R                      H  nU R                  US5        M     g )NTrX  rD  s     r   	enableAllsiteManager.enableAll   s*    ))DJJ/JNN:t, 0r   c                 R    U R                  U5      nX#;  a  gUR                  U5      $ r   )_getDefaultPropget)r
   rE  propNamedefaultPropss       r   rB  siteManager.getDefaultProperty  s,    ++J7'))r   c                     U R                  U5      nU(       aR  X#;   a  UR                  U5      $ U R                  U5      nX$;  a  gUR                  U5      nU R                  XU5        U$ g r   )_getDataSourcera  r`  r   )r
   rE  rb  
sourceDatarc  r   s         r   r   siteManager.getProperty  sq    ((4
%!~~h//  //
;L+ !$$X.EZ59L r   c                     U R                  U5      nU(       a,  X$;  d  XB   U:w  a  [        U5      XB'   U R                  5         g g g r   )rf  r`   save)r
   rE  rb  r   rg  s        r   r   siteManager.setProperty  sE    ((4
)Z-AU-J'*5z
$		 .K r   c                 0    Xl         U R                  5         g r   )r4  _saveDefault)r
   propss     r   setDefaultPropssiteManager.setDefaultProps%  s     r   c                     U R                   U R                     R                  U5      nU(       d3  U R                  U5      nU(       a  X R                   U R                     U'   U$ r   )r:  rY  ra  r`  )r
   rE  rg  s      r   rf  siteManager._getDataSource*  sV     YYtzz*..z:
 --j9J 4>		$**%j1r   c                 z   U R                   (       d:  [        U R                  S5       n[        R                  " U5      U l         S S S 5        U R                   (       aB  U R
                  U R                   ;   a(  U R                   U R
                     R                  U5      OS nU(       d  0 $ U$ ! , (       d  f       Nn= f)Nr2  )r4  r8  r3  r#  r9  rY  ra  )r
   rE  r=  rg  s       r   r`  siteManager._getDefaultProp:  s     d&&,#'99Q<  - FJEUEUZ^ZdZdhlhxhxZxT%%djj155jA  C
 I -,s   B,,
B:c                     [        U R                  S5       nUR                  [        R                  " U R
                  SS95        S S S 5        g ! , (       d  f       g = fNw   )indent)r8  r6  writer#  r$  r:  r
   r=  s     r   rj  siteManager.saveK  s;    $%%s+qGGDJJtyy34 ,++   /A
Ac                     [        U R                  S5       nUR                  [        R                  " U R
                  SS95        S S S 5        g ! , (       d  f       g = frv  )r8  r3  rz  r#  r$  r4  r{  s     r   rm  siteManager._saveDefaultP  s=    $""C(AGGDJJt//:; )((r}  )r:  r4  r3  r6  N)r(   r)   r*   r+   rY  rC  rI  LABELrT  r   rF  rJ  rM  rQ  rU  rZ  r]  rB  r   r   ro  rf  r`  rj  rm  r,   r-   r   r   r-  r-    so    EFJEH)>JN
C9G
*"
 "5
<r   r-  c                   0    \ rS rSrS rS rSS jrS rSrg)	addonManageriV  c                 8    [         R                  " SU-  S5        g )NzInstallAddon(%s)Tr  r
   addon_ids     r   installAddonaddonManager.installAddonX  s    .94@r   c                 <    [         R                  " SU-  5      S:X  + $ )NzSystem.HasAddon(%s)r   )r   r   r  s     r   isAddonExistsaddonManager.isAddonExists\  s    ))*?(*JKqPPr   c                 \   SSSU-  US:H  S.SS.n[         R                  " U5      n[        R                  " U5      n[         R                  " U5      n [        SU-   5        [        S	[        U5      -   5        US
   S:H  $ ! [         a     [        SU-   [        R                  5         gf = f)Nr  zAddons.SetAddonEnabledz%srA  )addonidenabledrS   r  zActivation de zresponse = r   OKz/enable_addon received an unexpected response - F)	r#  r$  r   r%  r&  ri   r`   KeyErrorLOGERROR)r
   r  enabler'  r(  r)  s         r   enableAddonaddonManager.enableAddon`  s     .(?!V+ 
 jj!&&s+::h'	"X-.-#h-/0H%-- 	ChNPTP]P]^	s   ,B 'B+*B+c                    U R                  U5      (       d  U R                  U5        U R                  U5      (       aL  [        R                  " US9R	                  U5      nX4:w  a#  [        R                  " US9R                  X#5      $ gg)N)r"  TF)r  r  r   r   r   r   )r
   r  paramr   oldValues        r   setSettingAddonaddonManager.setSettingAddonx  sq    !!(++h'h'' (3>>uEH  (3>>uLLr   r-   N)rA  )	r(   r)   r*   r+   r  r  r  r  r,   r-   r   r   r  r  V  s    AQ0r   r  )r   r#  r   r   r2   r  r   r   r   r/   rr   objectr   r   Windowr   ListItemr   LOGDEBUGri   rx   r  r  r  r   r  r#   r+  r-  r  r-   r   r   <module>r     s        $	 //0
1L L()3 )3X" PMf PMfF FRW^^ 
Bw B. == 46&P< P<h* *r   