
   aƤn                   `   d dl mZmZ d dlZd dlmc mZ d dlZd dl	m
Z
 d dlmZ d dlmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dl m!Z!m"Z"m#Z# d dl$m%Z% ddl&m'Z'm(Z(m)Z) dZ*ej+        ,                    e*d          Z- G d de          Z. G d dee          Z/dS )    )absolute_importprint_functionN)	ActionMap)Button)ConfigEnableDisableConfigPasswordConfigSelection
ConfigTextConfigYesNogetConfigListEntry)ConfigListScreen)Label)List)eTimer)
MessageBox)Screen)SCOPE_ACTIVE_SKINSCOPE_CURRENT_SKINresolveFilename)
LoadPixmap   )_e2m3u2bouquetlogz/etc/enigma2/ze2m3u2bouquet/c                   N    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )E2m3u2b_Providersa	  
        <screen position="center,center" size="600,500">
            <widget name="key_red" position="0,0" size="140,40" valign="center" halign="center" zPosition="4"  foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
            <widget name="key_green" position="140,0" size="140,40" valign="center" halign="center" zPosition="4"  foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
            <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" transparent="1" alphatest="on" />
            <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" transparent="1" alphatest="on" />
            <widget source="list" render="Listbox" position="10,50" size="580,430" scrollbarMode="showOnDemand">
                <convert type="TemplatedMultiContent">
                    {"template": [
                        MultiContentEntryPixmapAlphaTest(pos = (10, 0), size = (32, 32), png = 0),
                        MultiContentEntryText(pos = (47, 0), size = (400, 30), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 1),
                        MultiContentEntryText(pos = (450, 0), size = (120, 30), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 2),
                        ],
                        "fonts": [gFont("Regular",22)],
                        "itemHeight": 30
                    }
                </convert>
            </widget>
            <widget name="pleasewait" position="10,60" size="580,140" font="Regular;18" halign="center" valign="center" transparent="0" zPosition="5"/>
            <widget name="no_providers" position="10,50" size="580,430" font="Regular;18" zPosition="4" />
        </screen>
        c           	         t          j        | |           || _        |                     t	          d                     ddg| _        g | _        t          | j                  | d<   t                      | _	        	 | j	        j
                            | j                  | _        n=#  | j	        j
                                                            | j                   Y nxY wt!          g d| j        | j        | j        | j        | j        dd          | d<   t)          t	          d	                    | d
<   t)          t	          d                    | d<   t+                      | d<   t+                      | d<   | d                             t	          d                     | d                                          | j                            | j                   d S )NzIPTV Bouquet Maker - Providersr   AutoBouquetsMaker_HideSectionslist)ColorActionsSetupActionsMenuActions)okcancelredgreenmenuactionsCancelkey_redAdd	key_green
pleasewaitno_providerszHNo providers please add one (use green button) or create config.xml file)r   __init__sessionsetTitler   skinNamedrawListr   r   activityTimertimeoutconnectprepareactivityTimer_conngetappendr   openSelected	keyCancelkey_addr   r   setTexthideonLayoutFinishpopulate)selfr1   s       /home/vix/6.4/builds/openvix/release/vuultimo4k/tmp/work/cortexa15hf-neon-vfpv4-oe-linux-gnueabi/enigma2-plugin-extensions-e2m3u2bouquet/enigma2-plugin-extensions-e2m3u2bouquet-0.9.0+gitAUTOINC+7d0469119f-r1/image/usr/lib/enigma2/python/Plugins/Extensions/E2m3u2bouquet/providers.pyr0   zE2m3u2b_Providers.__init__1   s   g&&&a899:::,.NODM**V#XX	B&*&8&@&H&H&V&VD##	B&**,,33DLAAAAA#$S$S$S.2.?26./3~1504%& %& (*+ +Y !8--Y"1U88,,["WW\$ww^^$$Q'q%r%rsss^!!###""4=11111s   :)B$ $8Cc                     | d                              d           | d                             t          d                     | j                            d           d S Nr)   Fr.   zPlease wait...r   
setEnabledr?   r   r5   startrC   s    rD   rB   zE2m3u2b_Providers.populateR   sY    Y""5)))\""1%5#6#6777  #####    c                    | j                                          t          j                    | _        t
          j                            t
          j                            t          j	        d                    r=| j        
                    t
          j                            t          d                     |                                  | d                                          | d                             d           d S )Nz
config.xmlr.   r)   T)r5   stopr   Confige2m3u2b_configospathisfilejoinCFGPATHread_configrefreshr@   rH   rJ   s    rD   r8   zE2m3u2b_Providers.prepareX   s    !!!+2447>>"',,}'<lKKLL 	Q++BGLL,,O,OPPP\!!!Y""4(((((rK   c                 .    |                                   d S NcloserJ   s    rD   r=   zE2m3u2b_Providers.keyCancelc       

rK   c                     t          j                    }d|_        d|_        || j        j        |j        <   | j                            | j        t          | j        |           d S )NNewT)
r   ProviderConfignameenabledrO   	providersr1   openWithCallbackprovider_add_callbackE2m3u2b_Providers_Config)rC   providers     rD   r>   zE2m3u2b_Providers.key_addf   s\     /117?%hm4%%d&@BZ\`\oqyzzzzzrK   c                     | d                                          d         }| j                            | j        t          | j        | j        j        |                    d S )Nr   r   )
getCurrentr1   rb   provider_config_callbackrd   rO   ra   )rC   provider_names     rD   r<   zE2m3u2b_Providers.openSelectedn   sr    V//11!4%%d&CE]_c_rtx  uH  uR  S`  ua  	b  	b  	b  	b  	brK   c                    |j         rQ	 t          dt          t          d                    }n|#  t          dt          t          d                    }Y nTxY w	 t          dt          t          d                    }n+#  t          dt          t          d                    }Y nxY w|t          |j                  dfS )NTzicons/lock_on.png)cachedrQ   zskin_default/icons/lock_on.pngzicons/lock_off.pngzskin_default/icons/lock_off.png )r`   r   r   r   r   strr_   )rC   re   pixmaps      rD   buildListEntryz E2m3u2b_Providers.buildListEntryr   s     		~}#4oFWYl6m6mnnn}#4oFXZz6{6{|||~#4oFWYm6n6nooo~#4oFXZ{6|6|}}}HM**B//s   $. &A$A? ?&B'c                 z   g | _         t          j        | j        j                  D ]2\  }}| j                             |                     |                     3| d                             | j                    | j        j        s| d                                          d S | d         	                                 d S )Nr   r/   )
r4   six	iteritemsrO   ra   r;   ro   setListshowr@   )rC   keyre   s      rD   rV   zE2m3u2b_Providers.refresh   s     ]4+>+HII 	@ 	@MCM  !4!4X!>!>????VT]+++", 	( %%''''' %%'''''rK   c                 .    |                                   d S rX   )rV   rJ   s    rD   rh   z*E2m3u2b_Providers.provider_config_callback   s    rK   c                     d| j         j        v r | j         j                            dd            |                                  d S )Nr]   )rO   ra   poprV   rJ   s    rD   rc   z'E2m3u2b_Providers.provider_add_callback   s@    D'111)--eT:::rK   N)__name__
__module____qualname__skinr0   rB   r8   r=   r>   r<   ro   rV   rh   rc    rK   rD   r   r      s        D.2 2 2B$ $ $	) 	) 	)  { { {b b b0 0 0
( 
( 
(      rK   r   c                   Z    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )rd   a  
    <screen position="center,center" size="600,500">
    <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" transparent="1" alphatest="on" />
    <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" transparent="1" alphatest="on" />
    <ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" transparent="1" alphatest="on" />
    <widget name="key_red" position="0,0" size="140,40" valign="center" halign="center" zPosition="4"  foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
    <widget name="key_green" position="140,0" size="140,40" valign="center" halign="center" zPosition="4"  foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
    <widget name="key_yellow" position="280,0" size="140,40" valign="center" halign="center" zPosition="4"  foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
    <widget name="config" position="10,60" size="590,330" scrollbarMode="showOnDemand" />
    <widget name="description" position="10,410" size="590,80" font="Regular;18" halign="center" valign="top" transparent="0" zPosition="1"/>
    <widget name="pleasewait" position="10,60" size="590,350" font="Regular;18" halign="center" valign="center" transparent="0" zPosition="2"/>
    </screen>c           
      T   t          j        | |           || _        || _        || _        t          d                              |j                  | _        | 	                    | j                   ddg| _
        g | _        g | _        t          j        | | j        | j        | j                   t                      | _        	 | j        j                            | j                  | _        n=#  | j        j                                                            | j                   Y nxY wt/          g d| j        | j        | j        | j        | j        | j        dd          | d<   t7          t          d	                    | d
<   t7          t          d                    | d<   t7          t          d                    | d<   t9                      | d<   t9                      | d<   | d         j                            | j                   | j                            | j                    d S )NzProvider Configure - {}rd    AutoBouquetsMaker_ProvidersSetup)r1   	on_change)r!   r    VirtualKeyboardActionsr"   )r#   r$   r%   r&   yellowr'   r(   r)   r*   r+   Saver-   Delete
key_yellowdescriptionr.   config)!r   r0   r1   rO   re   r   formatr_   setup_titler2   r3   onChangedEntryr   r   changedEntryr   r5   r6   r7   r8   r9   r:   r;   r   keySaver=   
key_deleter   r   onSelectionChangedselectionChangedrA   rB   )rC   r1   providers_configre   s       rD   r0   z!E2m3u2b_Providers_Config.__init__   s   g&&&. 677>>x}MMd&'''35WX 	!$	4<SWSdeeee#XX	B&*&8&@&H&H&V&VD##	B&**,,33DLAAAAA#$m$m$m.2l26./3~1526/04%& %& (*+ +Y !8--Y"1V99--[#AhKK00\#gg]"WW\X)001FGGG""4=11111s   )C- -8D'c                     | d                                          rKt          | d                                                    dk    r | d                                          d         pdS )Nr      rl   )rg   lenrJ   s    rD   getCurrentDescriptionz.E2m3u2b_Providers_Config.getCurrentDescription   s_    H~((**vs4>3L3L3N3N/O/ORS/SvX\]eXfXqXqXsXstuXv|z||rK   c                 X    | d         r!|                                  | d         _        d S d S )Nr   r   )r   textrJ   s    rD   r   z)E2m3u2b_Providers_Config.selectionChanged   s:    > 	D'+'A'A'C'CD$$$	D 	DrK   c                     | d                              d           | d                             t          d                     | j                            d           d S rF   rG   rJ   s    rD   rB   z!E2m3u2b_Providers_Config.populate   sY    Y""5)))\""1%5#6#6777  #####rK   c                    | j                                          t          d          | _        t          d          | _        | j        j        | j        _        t          ddd          | _	        | j        j
        dk    r| j        j
        nd| j	        _        t          ddt          d          fdt          d          fg	          | _        | j        j        | j        _        t          ddd          | _        | j        j        | j        _        t          ddd          | _        | j        j        | j        _        t          dd
          | _        | j        j        | j        _        t+          dd
          | _        | j        j        | j        _        t1          d          | _        | j        j        | j        _        t          d          | _        | j        j        | j        _        t          ddt          d          fdt          d          fg	          | _        | j        j        rd| j        _        t          d          | _        | j        j         | j        _        t1          d          | _!        | j        j"        | j!        _        t          dg d	          | _#        | j        j$        | j#        _        t          dg d	          | _%        | j        j&        | j%        _        t1          d          | _'        | j        j(        | j'        _        t1          d          | _)        | j        j*        | j)        _        | +                                 | d         ,                                 | d         -                    d           d S )NF)defaultrl      )r   
fixed_sizevisible_widthr]   simpleexpert)r   choices)r   r   bottomtop) 1409750015002)r   r   r   r   r.   r)   T).r5   rM   r   provider_deleteprovider_enabledre   r`   valuer
   ri   r_   r	   r   provider_settings_levelsettings_levelprovider_m3u_urlm3u_urlprovider_epg_urlepg_urlprovider_usernameusernamer   provider_passwordpasswordr   provider_multi_vod	multi_vodprovider_piconspiconsprovider_bouquet_posbouquet_topprovider_all_bouquetall_bouquetprovider_iptv_types
iptv_typesprovider_streamtype_tvstreamtype_tvprovider_streamtype_vodstreamtype_vodprovider_sref_overridesref_overrideprovider_bouquet_downloadbouquet_downloadcreate_setupr@   rH   rJ   s    rD   r8   z E2m3u2b_Providers_Config.prepare   sN   !!!*5999 +E : : :&*m&;#'uTVWWW9=9Ku9T9T4=#5#5Z\ '6xS[]^_g]h]hRiltvw  yA  wB  wB  lC  RD  (E  (E  (E$-1]-I$* *2%WY Z Z Z&*m&;# *2%WY Z Z Z&*m&;#!+B5!I!I!I'+}'=$!/u!M!M!M'+}'=$"5e"D"D"D(,(?%*5999%)]%9"$3HPXZ[\dZeZeOfinpqrwpxpxhyNz${${${!=$ 	4.3D%+$/$>$>$>!*.-*C!'#6u#E#E#E )-)A &&5bJlJlJl&m&m&m#,0M,G#)'6rKhKhKh'i'i'i$-1]-I$*&9%&H&H&H#,0M,G#))<U)K)K)K&/3}/M&,\!!!Y""4(((((rK   c           	      
   d | _         g | _        d}| j                            t          t	          d          | j        t	          d                               | j                            t          t	          d          | j        t	          d                              | j        j	                                       | j        j
        sK| j                            t          t	          d          | j        t	          d                              | j        j	                                       | j        j
        r| j                            t          t	          d          | j        t	          d	                               | j        j        sv| j                            t          d
| j        t	          d                               | j                            t          d| j        t	          d                               | j                            t          t	          d          | j        t	          d                               | j                            t          t	          d          | j        t	          d                               | j                            t          d| j        t	          d                               | j                            t          d| j        t	          d                               | j                            t          t	          d          | j        t	          d                               | j                            t          t	          d          | j        t	          d                               | j        j
        dk    rh| j                            t          t	          d          | j        t	          d                               | j                            t          t	          d          | j        t	          d                               | j                            t          t	          d          | j        t	          d                                | j                            t          t	          d!          | j        t	          d"                               | j                            t          t	          d#          | j        t	          d$                               | j        | d%         _        | d%                             | j                   d S )&Nz- zName:zProvider namezDelete:zDelete provider {}zEnabled:zEnable provider {}zSetup mode:z2Choose level of settings. Expert shows all optionszM3U url:zGProviders M3U url. USERNAME & PASSWORD will be replaced by values belowzEPG url:zGProviders EPG url. USERNAME & PASSWORD will be replaced by values belowz	Username:z0If set will replace USERNAME placeholder in urlsz	Password:z0If set will replace PASSWORD placeholder in urlsz
Multi VOD:zEEnable to create multiple VOD bouquets rather than single VOD bouquetzPicons:zAutomatically download PiconszIPTV bouquet positionz$Select where to place IPTV bouquets zCreate all channels bouquet:z(Create a bouquet containing all channelsr   zAll IPTV type:zNormally should be left disabled. Setting to enabled may allow recording on some boxes. If you playback issues (e.g. stuttering on channels) set back to disabledzTV Stream Type:zStream type for TV serviceszVOD Stream Type:zStream type for VOD serviceszOverride service refsz{Should be left disabled unless you need to use the override.xml to override service refs (e.g. for DVB to IPTV EPG mapping)zCheck providers bouquetzAEnable this option to check and use providers custom service refsr   )editListEntryr   r;   r   r   ri   r   r   re   r_   r   r   r   provider_hide_urlsr   r   r   r   r   r   r   r   r   r   r   r   r   rs   )rC   indents     rD   r   z%E2m3u2b_Providers_Config.create_setup   s   !		+AgJJ8JAoL^L^__```	+AiLL$:NPQRfPgPgPnPnoso|  pB  QC  QC  D  D  	E  	E  	E#) 	I/*t?TVWXlVmVmVtVtuy  vC  vH  WI  WI  J  J  K  K  K$* 	  !3Am4D4DdFbde  g[  e\  e\  "]  "]  ^  ^  ^}7 jI$$%7
DDY[\  ^g  \h  \h  &i  &i  j  j  jI$$%7
DDY[\  ^g  \h  \h  &i  &i  j  j  j	  !3AkNNDDZ\]  _Q  ]R  ]R  "S  "S  T  T  T	  !3AkNNDDZ\]  _Q  ]R  ]R  "S  "S  T  T  T	  !3L$BY[\  ^e  \f  \f  "g  "g  h  h  h	  !3It?SUVWvUwUw!x!xyyy	  !3A6M4N4NPTPikl  nT  lU  lU  "V  "V  W  W  W	  !3A6T4U4UW[Wprs  u_  s`  s`  "a  "a  b  b  b/5AAI$$%7:J8K8KTMegh  jM  hN  hN  &O  &O  P  P  PI$$%7:K8L8LdNikl  nK  lL  lL  &M  &M  N  N  NI$$%7:L8M8MtOkmn  pN  nO  nO  &P  &P  Q  Q  QI$$%7:Q8R8RTXToqr  tq  rr  rr  &s  &s  t  t  tI$$%7:S8T8TVZVtvw  y|  w}  w}  &~  &~      "iXXty)))))rK   c                 v   | d                                          | _        | j        D ]} |             	 t          | d                                          d         t                    s3t          | d                                          d         t
                    r|                                  d S d S #  Y d S xY wNr   r   )rg   itemr   
isinstancer   r	   r   )rC   xs     rD   r   z%E2m3u2b_Providers_Config.changedEntry  s    N--//	$ 	 	AACCCC	$x.3355a8+FF $*UYZbUcUnUnUpUpqrUs  vE  KF  KF $!!#####$ $	DDs   A:B3 3B8c                    | j         j        }| j        j        dk    s| j        j        rF| j                            | j        t          t          d          
                    |                     | j        j        | j         _        | j        j        | j         _        | j        j        | j         _        | j        j        | j         _        | j        j        | j         _        | j        j        | j         _        | j        j        | j         _        | j        j        | j         _        | j        j        | j         _        | j        j        dk    rd| j         _        nd| j         _        | j        j        | j         _        | j        j        | j         _         | j!        j        "                                | j         _#        | j$        j        "                                | j         _%        | j&        j        | j         _'        | j(        j        | j         _)        | j        j        sd| j         _        | j        j        dk    ry| j        j        |k    ri| j*        j+        ,                    |          | j*        j+        | j        j        <   t[          d
                    | j        j                  t\                     | j*        /                                 | 0                                 d S )Nrl   Confirm deletion of provider {}r   TFz[e2m3u2b] Provider {} updatedfile)1re   r_   ri   r   r   r1   rb   delete_confirmr   r   r   r   r`   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   stripr   r   r   r   r   r   r   rO   ra   rx   printr   write_configrZ   )rC   previous_names     rD   r   z E2m3u2b_Providers_Config.keySave*  s[   * #r))T-A-G)L))$*=z1MnKoKoKvKv  xE  LF  LF  G  G  G $ 5 ;!/5'+'C'I$ $ 5 ; $ 5 ;!%!7!=!%!7!="&"9"?#39$*e33(,DM%%(-DM%$($=$C!#'#;#A &*&A&G&M&M&O&O#'+'C'I'O'O'Q'Q$&*&A&G#)-)G)M& $* 	*$)DM!#r))d.@.F-.W.WFJFYFcFgFghuFvFvD)$*<*BC1889K9QRRY\]]]] 	((***

rK   c                     |sd S | d         j         D ]}|d                                          |                                  d S r   )r   r$   rZ   )rC   resultr   s      rD   cancelConfirmz&E2m3u2b_Providers_Config.cancelConfirmQ  sI     	Fh$ 	 	AaDKKMMMM

rK   c                 .    |                                   d S rX   rY   rJ   s    rD   r=   z"E2m3u2b_Providers_Config.keyCancelX  r[   rK   c                     | j                             | j        t          t	          d                              | j        j                             d S )Nr   )r1   rb   r   r   r   r   re   r_   rJ   s    rD   r   z#E2m3u2b_Providers_Config.key_deletea  sb    %%d&9:qIjGkGkGrGrsw  tA  tF  HG  HG  	H  	H  	H  	H  	HrK   c                 "   |sd S t          d                    | j        j                  t                     | j        j                            | j        j        d            | j                                         | 	                                 d S )Nz[e2m3u2b] Provider {} deleter   )
r   r   re   r_   r   rO   ra   rx   r   rZ   )rC   r   s     rD   r   z'E2m3u2b_Providers_Config.delete_confirmd  s}     	F,33DM4FGGcRRRR%))$-*<dCCC((***

rK   N)ry   rz   r{   r|   r0   r   r   rB   r8   r   r   r   r   r=   r   r   r}   rK   rD   rd   rd      s        D$2 $2 $2L} } }D D D$ $ $
)) )) ))V* * *<
 
 
% % %N    H H H    rK   rd   )0
__future__r   r   rP   xml.etree.cElementTreeetreecElementTreeETrq   Components.ActionMapr   Components.Buttonr   Components.configr   r   r	   r
   r   r   Components.ConfigListr   Components.Labelr   Components.Sources.Listr   enigmar   Screens.MessageBoxr   Screens.Screenr   Tools.Directoriesr   r   r   Tools.LoadPixmapr   rl   r   r   r   
ENIGMAPATHrQ   rS   rT   r   rd   r}   rK   rD   <module>r      s   6 6 6 6 6 6 6 6 				 # # # # # # # # # 



 * * * * * * $ $ $ $ $ $                 2 2 2 2 2 2 " " " " " " ( ( ( ( ( (       ) ) ) ) ) ) ! ! ! ! ! ! T T T T T T T T T T ' ' ' ' ' ' # # # # # # # # # #

',,z#3
4
4y y y y y y y yxU U U U U/ U U U U UrK   