U
    àfcê  ã                   @   sº   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZdZe 	e¡Z	e	 
d¡Ze	 
d¡Zi i dfdd„Zdd	„ Zd
d„ Zdd„ Zddd„Zddd„Zdd„ Zdd„ Zdd„ ZdS )é    Nzplugin.video.iptvaddonsÚiconÚnameFc           	      C   s    |rt  |¡}t | |¡}n
t | ¡}| dd¡ | ¡ D ]\}}| ||¡ q:t |¡}|dkr„| ¡  d¡r~| ¡ d }q”d }n| 	¡  
dd¡}| ¡  |S )Nz
User-AgentzAMozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0Tz
Set-CookieúÚ )ÚurllibÚ	urlencodeÚurllib2ÚRequestÚ
add_headerÚitemsÚurlopenÚinfoZhas_keyÚreadÚreplaceÚclose)	ÚurlÚheadersZ	user_dataZ
justCookieÚreqÚkÚvÚresponseÚdata© r   úd/Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common3.pyÚOpenURL   s$    

 ÿ
r   c                 C   s<   z&t | dƒ}| ¡  dd¡}| ¡  W n   d}Y nX |S )NÚrz

Ú
r   )Úopenr   r   r   )ÚfileNameÚfÚcontentr   r   r   ÚReadFile*   s    

r!   c                 C   sª   z$t | dƒ�}t |¡}W 5 Q R X W n€ tk
r¤ } zbt|ƒ tj | ¡r�dd l}| 	| d 
| d |  d¡… ¡¡ t d 
ttj | ¡dt¡¡ g }W 5 d }~X Y nX |S )Nr   r   z{0}_bak.txtÚ.zFNotification({0}, Cannot read file: "{1}". 
Backup createad, {2}, {3})iˆ  )r   ÚjsonÚloadÚ	ExceptionÚprintÚosÚpathÚisfileÚshutilÚcopyfileÚformatÚrfindÚxbmcÚexecutebuiltinÚ	AddonNameÚbasenamer   )r   Úhandler    Úexr*   r   r   r   ÚReadList5   s$    
ÿ 
  ÿr4   c              
   C   sr   z>t j| ddd�� }| ttj|ddd�ƒ¡ W 5 Q R X d}W n. tk
rl } zt|ƒ d}W 5 d }~X Y nX |S )NÚwúutf-8)Úencodingé   F)ÚindentÚensure_asciiT)Úior   ÚwriteÚunicoder#   Údumpsr%   r&   )ÚfilnameÚlistr2   Úsuccessr3   r   r   r   ÚSaveListF   s    ÿrB   c                 C   s   t  ¡ }| | |||¡ d S ©N)ÚxbmcguiÚDialogÚok)ÚtitleÚline1Úline2Úline3Zdlgr   r   r   ÚOKmsgS   s    rK   ÚMainc                 C   s   |   d¡dkrt| ƒ}nt| ƒ}t dtjtj tj tj ¡ 	|¡}t
|ƒdk rVd n|d }d|ig}t dtjtj tj tj ¡ 	|¡}|D ]h}t dtjtj tj tj ¡ 	d |¡¡}i }|D ]\}	}
|
 ¡ ||	 ¡  ¡ < qÊ||d	< | |¡ q’|S )
NÚhttpr   z^background=(.*?)$é   Ú
backgroundz^type(.*?)#$z^(.*?)=(.*?)$ztype{0}Úgroup)Úfindr   r!   ÚreÚcompileÚIÚMÚUÚSÚfindallÚlenr,   ÚstripÚlowerÚappend)r   rP   r   ÚmatchesrO   r@   ÚmatchÚitemÚ	item_dataÚfieldÚvaluer   r   r   Úplx2listX   s6    

ÿÿÿÿ
&ÿÿrc   c                 C   sò   |   d¡dkrt| ƒ}nt| ƒ}t dtjtj tj tj ¡ 	|¡}g }|D ] \}}} ||| dœ}| 
|¡ qNg }|D ]t}|d |d dœ}t dtjtj tj tj ¡ 	|d	 ¡}|D ]$\}	}
|
 ¡ ||	 ¡  ¡  d
d¡< q¼| 
|¡ qx|S )NrM   r   z#^#EXTINF:-?[0-9]*(.*?),(.*?)
(.*?)$)ÚparamsÚdisplay_namer   re   r   )re   r   z (.+?)="(.+?)"rd   ú-Ú_)rQ   r   r!   rR   rS   rT   rU   rV   rW   rX   r\   rZ   r[   r   )r   r   r]   Úlird   re   r`   r@   Úchannelra   rb   r   r   r   Úm3u2list}   s@    
 ÿÿ ÿ ÿÿÿÿrj   c              	   C   sT   z&dd l }|  | | ¡d ¡ d¡} W n(   z|  d¡} W n   Y nX Y nX | S )Nr   r7   r6   )ÚchardetÚdecodeÚdetectÚencode)Ústrrk   r   r   r   ÚGetEncodeString—   s    rp   c              
   C   sJ   zt j | ¡rt  | ¡ W n* tk
rD } zt|ƒ W 5 d }~X Y nX d S rC   )r'   r(   r)   Úunlinkr%   r&   )r?   Úer   r   r   ÚDelFile£   s
    rs   )NN)rL   )r   r'   r;   r.   Ú	xbmcaddonrD   r#   rR   ÚAddonIDÚAddonÚgetAddonInfor   r0   r   r!   r4   rB   rK   rc   rj   rp   rs   r   r   r   r   Ú<module>   s(   




%