
   ԸF                      d dl mZmZ d dlZd dlZd dl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 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$ ddl%m&Z& 	 d dl'm(c m)c m)Z) n# e*$ r dZ)Y nw xY w G d de          Z+ G d de          Z, G d de          Z- G d de          Z. G d de          Z/ G d de          Z0dS )    )absolute_importprint_functionN)	ActionMap)Button)config)Label)ScrollLabel)List)	eEPGCacheeTimer)
MessageBox)Screen)Setup)
LoadPixmap   )_e2m3u2bouquetlog)plugin)E2m3u2b_About)E2m3u2b_Providersc                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )E2m3u2b_Menua3  
    <screen position="center,center" size="600,500">
        <widget name="key_red" position="0,0" size="140,40" valign="center" halign="center" zPosition="5"  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="5"  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="0,50" size="600,420" scrollbarMode="showOnDemand">
            <convert type="TemplatedMultiContent">
                {"template": [
                    MultiContentEntryPixmapAlphaTest(pos = (12, 4), size = (32, 32), png=0),
                    MultiContentEntryText(pos = (58, 5), size = (440, 38), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 1),
                    ],
                    "fonts": [gFont("Regular",22)],
                    "itemHeight": 40
                }
            </convert>
        </widget>
    </screen>
    c           	      x   t          j        | |           |                     t          d                     ddg| _        g | _        g }t          |          | d<   t          g d| j        | j	        | j        | j
        | j        dd          | d<   t          t          d	                    | d
<   t          t          d                    | d<   d | _        t          rIt          j        j        j        j        du r,t          j        t'          j                    d           | _        |                                  d S )NzIPTV Bouquet Makerr   AutoBouquetsMaker_Menulist)ColorActionsSetupActionsMenuActions)redgreencancelokmenuactionsExitkey_redRun	key_greenTc                     dS )NT )xs      /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/menu.py<lambda>z'E2m3u2b_Menu.__init__.<locals>.<lambda>K   s    TX     )r   __init__setTitler   skinNameonChangedEntryr
   r   	keyCancelmanual_updateopenSelectedr   	epgimport	EPGImportr   pluginse2m3u2bdo_epgimportvaluer   getInstancecreateSetup)selfsessionls      r.   r1   zE2m3u2b_Menu.__init__4   s+   g&&&a,--...')AB AwwV#$S$S$S+/>-1-?.2n*.*;,0N!" !" $&' 'Y !6++Y"1U88,,[ 	Z/<BdJJ&01F1H1H..YYDNr0   c                    |                      t          d                    |                      t          d                    |                      t          d                    |                      t          d                    |                      t          d                    |                      t          d                    |                      t          d                    g}|| d         _        d S )	N	Configure	ProviderszCreate BouquetsStatuszReset BouquetszShow LogAboutr   )build_list_entryr   r   )r@   rB   s     r.   r?   zE2m3u2b_Menu.createSetupN   s    ""1[>>22""1[>>22""1%6#7#788""1X;;//""1%5#6#677""1Z==11""1W::..0 Vr0   c           	          t          dd                    t          j                            t
          j        t                   j                  d                    }||fS )NTz{}/images/{}z	blank.png)cachedpath)	r   formatosrK   dirnamesysmodules__name____file__)r@   descriptionpixmaps      r.   rH   zE2m3u2b_Menu.build_list_entryX   s^    4n.C.CBGOOTWT_`hTiTrDsDs  vA  /B  /B  C  C  C$%r0   c                 F   | d                                          }|dk    r,| j                            t          j        t
                     d S |dk    r!| j                            t                     d S |dk    r|                                  d S |dk    r!| j                            t                     d S |dk    r| 
                                 d S |dk    r!| j                            t                     d S |dk    r!| j                            t                     d S d S )	Nr   r   r                  )getIndexrA   openWithCallbackE2m3u2b_Plugindone_configuringE2m3u2b_Configopenr   r6   E2m3u2b_Statusreset_bouquetsE2m3u2b_Logr   )r@   indexs     r.   r7   zE2m3u2b_Menu.openSelected\   s   V%%''A::L)).*I>ZZZFA::L/000FA::   FA::Ln---FA::!!!FA::Lk***FA::Lm,,,F :r0   c                 P    | j                             t          | j                   d S N)rA   r`   E2m3u2b_Updater8   r@   s    r.   r6   zE2m3u2b_Menu.manual_updateu   s"    .$.99999r0   c                     	 | j                             | j        t          t	          d          t          j        d           d S )Nz\This will remove the IPTV Bouquets and Epg Importer configs that have been created.
Proceed?F)default)rA   r\   reset_bouquets_callbackr   r   
TYPE_YESNOrh   s    r.   rb   zE2m3u2b_Menu.reset_bouquetsx   sb    	 	%%d&BJPQ  Sr  Qs  Qs  u  uJ.3 	& 	5 	5 	5 	5 	5r0   c                     |sd S 	 t          j                     d S # t          $ r>}t          d|t                     t
          j        j        j        j	        r Y d }~d S d }~ww xY w)Nz([e2m3u2b] reset_bouquets_callback Error:file)
r]   do_reset	Exceptionprintr   r   r:   r;   debugr=   r@   	confirmedes      r.   rk   z$E2m3u2b_Menu.reset_bouquets_callback   s     	F	#%%%%% 	 	 	<acJJJJ~%+1      	s    
A#3AA#c                 .    |                                   d S rf   closerh   s    r.   r5   zE2m3u2b_Menu.keyCancel       

r0   N)rQ   
__module____qualname__skinr1   r?   rH   r7   r6   rb   rk   r5   r,   r0   r.   r   r      s        D*  4  & & &  2: : :5 5 5      r0   r   c                       e Zd Zd ZdS )r_   c                 8    t          j        | |ddd           d S )Nr_   zExtensions/E2m3u2bouquetE2m3u2bouquet)r   PluginLanguageDomain)r   r1   r@   rA   s     r.   r1   zE2m3u2b_Config.__init__   s8    tW&6?Yp  	A  	A  	A  	A  	A  	Ar0   N)rQ   r{   r|   r1   r,   r0   r.   r_   r_      s(        A A A A Ar0   r_   c                       e Zd ZdZd Zd ZdS )ra   a  
        <screen position="center,center" size="600,500">
            <widget name="key_red" position="0,0" size="140,40" valign="center" halign="center" zPosition="5"  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" />
            <widget name="about" position="10,50" size="580,430" font="Regular;18"/>
        </screen>
        c                    || _         t          j        | |           t          j        | d           ddg| _        t          d          | d<   t          g d| j        | j        | j        dd          | d	<   t          t          d
                    | d<   t          j        j        j        rV| d                             t          d                              t          j        j        j        j                             d S d S )NzIPTV Bouquet Maker - Statusra   AutoBouquetsMaker_About aboutr   r   r   r    r"   r$   r%   r&   Closer(   zLast channel update: {})rA   r   r1   r2   r3   r   r   r5   r   r   r   r:   r;   last_updatesetTextrL   r=   r   s     r.   r1   zE2m3u2b_Status.__init__   s    g&&&;<<<)+DEb		W#$S$S$S/3~26.04%& %& (*+ +Y !7,,Y>!- 	qM!!!$=">">"E"EfnF\FhFn"o"oppppp	q 	qr0   c                 .    |                                   d S rf   rx   rh   s    r.   r5   zE2m3u2b_Status.keyCancel   rz   r0   N)rQ   r{   r|   r}   r1   r5   r,   r0   r.   ra   ra      s<        Dq q q$    r0   ra   c                   *    e Zd ZdZd Zd Zd Zd ZdS )rc   a  
    <screen position="center,center" size="600,500">
    <ePixmap name="red" position="0,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
    <ePixmap name="green" position="140,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
    <ePixmap name="blue" position="280,0" zPosition="2" size="140,40" pixmap="skin_default/buttons/blue.png" 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_blue" 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="list" position="10,40" size="540,340" />
    </screen>c                 6   || _         t          j        | |           t          j        | d           ddg| _        t          t          d                    | d<   t          t          d                    | d<   t          t          j	                              | d<   t          g d	| j        | j        | j        | j        | d         j        | d         j        | d         j        | d         j        | d         j        | d         j        | j        d
d          | d<   d S )NzIPTV Bouquet Maker - Logrc   AutoBouquetsMaker_Logr   r(   Saver*   r   )DirectionActionsOkCancelActionsr   r   )r    r!   r"   r#   leftrightupdownpageUppageDownr$   r%   r&   )rA   r   r1   r2   r3   r   r   r	   r   getvaluer   r5   keySaver   r   r   s     r.   r1   zE2m3u2b_Log.__init__   s   g&&&8999&(?@ 7,,Y"1V99--["3<>>22V#$j$j$j/3~1526..2n04V0C15f1F.26l.A04V0E26v,2E48L4I04%& %& (*+ +Yr0   c                 0    |                      d           d S NFrx   rh   s    r.   r5   zE2m3u2b_Log.keyCancel   s    

5r0   c                     t           j                                         t           j                                         |                     d           d S r   )r   logfileresettruncatery   rh   s    r.   keyClearzE2m3u2b_Log.keyClear   sB    

5r0   c                 |   t          j                    }t          j                            |d          }t          |d          5 }|                    t          j                               d d d            n# 1 swxY w Y   | j	                            t          t          d          t          j        d           d S )Nze2m3u2bouquet.logwz,Log file has been saved to the tmp directory   timeout)tempfile
gettempdirrM   rK   joinr`   writer   r   rA   r   r   	TYPE_INFO)r@   rK   filenamefs       r.   r   zE2m3u2b_Log.keySave   s    "$$7<<&9::(C   	$AGGCLNN###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$*a(V&W&WYcYmwyzzzzzs   'A77A;>A;N)rQ   r{   r|   r}   r1   r5   r   r   r,   r0   r.   rc   rc      s\        	D+ + +4    
{ { { { {r0   rc   c                   B    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )rg   a  
            <screen position="center,center" size="600,500">
                <widget name="key_red" position="0,0" size="140,40" valign="center" halign="center" zPosition="5"  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" />
                <widget name="about" position="10,50" size="580,430" font="Regular;16"/>
            </screen>
            c                    || _         t          j        | |           t          j        | d           ddg| _        t          g d| j        | j        | j        dd          | d<   t          t          d                    | d	<   t                      | d
<   | d
         
                    t          d                     t                      | _        	 | j        j                            | j                  | _        n=#  | j        j                                                            | j                   Y nxY wt                      | _        	 | j        j                            | j                  | _        n+#  | j        j                            | j                   Y nxY w|| _        | j                            | j                   d S )Nz$IPTV Bouquet Maker - Create Bouquetsrg   r   r   r   r%   r&   r   r(   r   zStarting...)rA   r   r1   r2   r3   r   r5   r   r   r   r   r   activityTimerr   connectprepareactivityTimer_conngetappendupdate_status_timerupdate_statusupdate_status_timer_conncallbackr8   onLayoutFinishpopulate)r@   rA   r8   s      r.   r1   zE2m3u2b_Update.__init__   s   g&&&DEEE)+DE#$S$S$S/3~26.04%& %& (*+ +Y !7,,YWWa..///#XX	B&*&8&@&H&H&V&VD##	B&**,,33DLAAAAA#)88 	I,0,D,L,T,TUYUg,h,hD))	I$-44T5GHHHHH"""4=11111s   )C: :8D4)E5 5&Fc                 :    | j                             d           d S )Nr   )r   startrh   s    r.   r   zE2m3u2b_Update.populate  s      #####r0   c                 `    | j                                          |                                  d S rf   )r   stopr6   rh   s    r.   r   zE2m3u2b_Update.prepare  s/    !!!r0   c                 `    | j                                          |                                  d S rf   )r   r   ry   rh   s    r.   r5   zE2m3u2b_Update.keyCancel  s(     %%'''

r0   c                    	 d}| j         r| j                                         }|st          j        j        rQ| j                            t          t          d          t          j	        dd           | 
                                 d S | j                            | j        t          t          d          t          j        dd           d S )	NFz&Update still in progress. Please wait.
   T)r   close_on_any_keyzDUpdate of channels will start.
This may take a few minutes.
Proceed?   )r   rj   )r8   isImportRunningr   rF   
is_runningrA   r`   r   r   
TYPE_ERRORry   r\   manual_update_callbackrl   )r@   is_epgimport_runnings     r.   r6   zE2m3u2b_Update.manual_update  s    	$> 	D#'>#A#A#C#C  	D=#7#B 	DLj!,T*U*UWaWlvx  LP  Q  Q  QJJLLLFL))$*EzST V5 T6 T67A7L24d * D D D D Dr0   c                     |s|                                   d S 	 |                                  d S # t          $ r>}t          d|t                     t
          j        j        j        j	        r Y d }~d S d }~ww xY w)Nz'[e2m3u2b] manual_update_callback Error:rn   )
ry   start_updaterq   rr   r   r   r:   r;   rs   r=   rt   s      r.   r   z%E2m3u2b_Update.manual_update_callback,  s     	JJLLLF	 	 	 	;QSIIII~%+1      	s   0 
A83A33A8c                 l    | j                             d           t          j        | j                   d S )Ni  )r   r   r]   r   r8   rh   s    r.   r   zE2m3u2b_Update.start_update7  s2     &&t,,,#DN33333r0   c                 L   | d                              t          j        j                   | j        rp| j                                        rY| d                              t          d                              | j        j        j	        | j        j
                             d S d S d S )Nr   z"EPG Import: Importing {} {} events)r   r   rF   messager8   r   r   rL   sourcerS   
eventCountrh   s    r.   r   zE2m3u2b_Update.update_status;  s    Wm2:;;;> 	jdn<<>> 	jM!!!$H"I"I"P"PQUQ_QfQrNRnNg#i #i j j j j j	j 	j 	j 	jr0   N)rQ   r{   r|   r}   r1   r   r   r5   r6   r   r   r   r,   r0   r.   rg   rg      s        D2 2 2@$ $ $    D D D"	 	 	4 4 4j j j j jr0   rg   c                       e Zd Zd Zd ZdS )E2m3u2b_Checkc                 |    t          j        | |           || _        | j                            | j                   d S rf   )r   r1   rA   onShownr   epimport_checkr   s     r.   r1   zE2m3u2b_Check.__init__D  s:    g&&&D/00000r0   c                     t           P| j                            t          t	          d          t          j        d           |                                  d S d S )Nz9EPG Import not found
Please install the EPG Import pluginr   r   )r9   rA   r`   r   r   TYPE_WARNINGry   rh   s    r.   r   zE2m3u2b_Check.epimport_checkI  sX    Lj!,h*i*i(5r  C C CJJLLLLL r0   N)rQ   r{   r|   r1   r   r,   r0   r.   r   r   C  s2        1 1 1
    r0   r   )1
__future__r   r   rM   rO   r   Components.ActionMapr   Components.Buttonr   Components.configr   Components.Labelr   Components.ScrollLabelr	   Components.Sources.Listr
   enigmar   r   Screens.MessageBoxr   Screens.Screenr   Screens.Setupr   Tools.LoadPixmapr   r   r   r   r   r   r]   r   r   	providersr   &Plugins.Extensions.EPGImport.EPGImport
Extensionsr9   ImportErrorr   r_   ra   rc   rg   r   r,   r0   r.   <module>r      s   6 6 6 6 6 6 6 6 				 



  * * * * * * $ $ $ $ $ $ $ $ $ $ $ $ " " " " " " . . . . . . ( ( ( ( ( ( $ $ $ $ $ $ $ $ ) ) ) ) ) ) ! ! ! ! ! !       ' ' ' ' ' ' # # # # # # # # # # & & & & & &             ( ( ( ( ( (>>>>>>>>>>>>>   IIIl l l l l6 l l l^A A A A AU A A A
    V   >3{ 3{ 3{ 3{ 3{& 3{ 3{ 3{lYj Yj Yj Yj YjV Yj Yj Yjx
 
 
 
 
F 
 
 
 
 
s   6B BB