ó
ƒãS`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  d l Z d Z	 e j
 e	 ƒ Z
 e
 j d ƒ Z e
 j d ƒ Z i  i  e d „ Z d „  Z d „  Z d „  Z d d d	 „ Z d
 d „ Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿNs   plugin.video.iptvaddonst   icont   namec   	      C   sè   | r* t  j | ƒ } t j |  | ƒ } n t j |  ƒ } | j d d ƒ x* | j ƒ  D] \ } } | j | | ƒ qV Wt j | ƒ } | t k rÂ | j ƒ  j	 d ƒ r¹ | j ƒ  d } qÚ d  } n | j ƒ  j d d ƒ } | j ƒ  | S(   Ns
   User-AgentsA   Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0s
   Set-Cookies   t    (   t   urllibt	   urlencodet   urllib2t   Requestt
   add_headert   itemst   urlopent   Truet   infot   has_keyt   Nonet   readt   replacet   close(	   t   urlt   headerst	   user_datat
   justCookiet   reqt   kt   vt   responset   data(    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   OpenURL   s    	
c         C   sI   y5 t  |  d ƒ } | j ƒ  j d d ƒ } | j ƒ  Wn d } n X| S(   Nt   rs   

s   
R   (   t   openR   R   R   (   t   fileNamet   ft   content(    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   ReadFile    s    
c         C   sÂ   y+ t  |  d ƒ � } t j | ƒ } Wd  QXWn� t k
 r½ } | GHt j j |  ƒ r´ d d  l } | j |  d j	 |  |  j
 d ƒ  ƒ ƒ t j d j	 t t j j |  ƒ d t ƒ ƒ n  g  } n X| S(   NR   iÿÿÿÿs   {0}_bak.txtt   .sF   Notification({0}, Cannot read file: "{1}". 
Backup createad, {2}, {3})iˆ  (   R   t   jsont   loadt	   Exceptiont   ost   patht   isfilet   shutilt   copyfilet   formatt   rfindt   xbmct   executebuiltint	   AddonNamet   basenameR    (   R   t   handleR   t   exR(   (    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   ReadList*   s    &.
c         C   sx   yS t  j |  d d d ƒ�/ } | j t t j | d d d t ƒƒ ƒ Wd  QXt } Wn t k
 rs } | GHt } n X| S(   Nt   wt   encodings   utf-8t   indenti   t   ensure_ascii(	   t   ioR   t   writet   unicodeR"   t   dumpst   FalseR
   R$   (   t   filnamet   listR0   t   successR1   (    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   SaveList8   s    .

c         C   s&   t  j ƒ  } | j |  | | | ƒ d  S(   N(   t   xbmcguit   Dialogt   ok(   t   titlet   line1t   line2t   line3t   dlg(    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   OKmsgC   s    t   Mainc         C   si  |  j  d ƒ d k r$ t |  ƒ } n t |  ƒ } t j d t j t j t j t j ƒ j	 | ƒ } t
 | ƒ d k  r{ d  n | d } i | d 6g } t j d t j t j t j t j ƒ j	 | ƒ } xš | D]’ } t j d t j t j t j t j ƒ j	 d j | ƒ ƒ } i  } x0 | D]( \ }	 }
 |
 j ƒ  | |	 j ƒ  j ƒ  <qW| | d	 <| j | ƒ qÏ W| S(
   Nt   httpi    s   ^background=(.*?)$i   t
   backgrounds   ^type(.*?)#$s   ^(.*?)=(.*?)$s   type{0}t   group(   t   findR   R    t   ret   compilet   It   Mt   Ut   St   findallt   lenR   R*   t   stript   lowert   append(   R   RL   R   t   matchesRK   R=   t   matcht   itemt	   item_datat   fieldt   value(    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   plx2listG   s    3"3< 
c         C   se  |  j  d ƒ d k r$ t |  ƒ } n t |  ƒ } t j d t j t j t j t j ƒ j	 | ƒ } g  } x? | D]7 \ } } }  i | d 6| d 6|  d 6} | j
 | ƒ qp Wg  } x­ | D]¥ } i | d d 6| d d 6} t j d t j t j t j t j ƒ j	 | d ƒ } x< | D]4 \ }	 }
 |
 j ƒ  | |	 j ƒ  j ƒ  j d d	 ƒ <qW| j
 | ƒ q¸ W| S(
   NRJ   i    s#   ^#EXTINF:-?[0-9]*(.*?),(.*?)
(.*?)$t   paramst   display_nameR   s    (.+?)="(.+?)"t   -t   _(   RM   R   R    RN   RO   RP   RQ   RR   RS   RT   RX   RV   RW   R   (   R   R   RY   t   liR`   Ra   R\   R=   t   channelR]   R^   (    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   m3u2listh   s     37,c         C   s`   y5 d d  l  } |  j | j |  ƒ d ƒ j d ƒ }  Wn$ y |  j d ƒ }  Wq\ q\ Xn X|  S(   NiÿÿÿÿR4   s   utf-8(   t   chardett   decodet   detectt   encode(   t   strRg   (    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   GetEncodeString}   s    )c         C   sE   y& t  j j |  ƒ r% t  j |  ƒ n  Wn t k
 r@ } | GHn Xd  S(   N(   R%   R&   R'   t   unlinkR$   (   R<   t   e(    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   DelFileˆ   s
    (   R   R   R%   R7   R,   t	   xbmcaddonR@   R"   RN   t   AddonIDt   Addont   getAddonInfoR    R.   R;   R   R    R2   R?   R   RH   R_   Rf   Rl   Ro   (    (    (    sc   /Users/user/Library/Application Support/Kodi/addons/plugin.video.iptvaddons/resources/lib/common.pyt   <module>   s   l	
		!		