U
    á¥ÚjÆ  ã                   @   sL   d Z ddlZddlZddlmZ ddlmZ dd„ Zddd	„Zdd
d„Z	dS )uS   ResoluciÃ³n de canales Sling autorizados desde M3U existente; sin depender del EPG.é    N)Ú	_playlist)Úforzar_enlace_futbolc                 C   s2   d  dd„ t dt| ƒ ¡ ¡D ƒ¡} t dd| ¡S )NÚ c                 s   s   | ]}t  |¡s|V  qd S )N)ÚunicodedataZ	combining)Ú.0Úc© r   úhermes_sling_directo_v6.pyÚ	<genexpr>   s     
 znormalizar.<locals>.<genexpr>ZNFKDz
[^a-z0-9]+)Újoinr   Z	normalizeÚstrÚcasefoldÚreÚsub)Úsr   r   r	   Ú
normalizar   s    $r   é   c                 C   sÞ   t | ƒ}t|ƒdk rddiS tƒ }g }tƒ }| ¡ D ]x}|D ]n}|d }t |ƒ}	||	ks`|	|kr<|d }
|
|kr<| |
¡ | ||
t|	|kƒd t|	 |¡ƒd  dœ¡ q<q4|j	d	d
„ d� |rÆdnd|d |… t|ƒdœS )Né   ÚestadoZCANAL_INVALIDOÚnombreÚurléd   é
   )r   r   Úpuntajec                 S   s
   | d  S )Nr   r   )Úxr   r   r	   Ú<lambda>   ó    z$buscar_canal_sling.<locals>.<lambda>)ÚkeyZCANALES_ENCONTRADOSÚCANAL_NO_ENCONTRADO)r   ÚcanalesZtotal)
r   Úlenr   ÚsetÚvaluesÚaddÚappendÚintÚ
startswithÚsort)ÚcanalZlimiteZneedleZcatalogoÚencontradosZvistosÚentriesÚitemr   Zclaver   r   r   r	   Úbuscar_canal_sling
   s(       
4

 ÿr,   c                 C   s²   t |ƒ}| dg ¡}|s"d|dœS t|ƒdkrN|sNd| |dd„ t|ƒD ƒdœS |rxdt|ƒ  krnt|ƒksxn d	d
iS |rŒ|t|ƒd  n|d }t| |d ƒ}|d |d< |S )Nr   r   )r   Úbusquedaé   ZELEGIR_CANALc                 S   s"   g | ]\}}|d  |d dœ‘qS )r.   r   )Únumeror(   r   )r   Úir   r   r   r	   Ú
<listcomp>!   s     z1asignar_canal_sling_a_tarjeta.<locals>.<listcomp>)r   Úequipo_o_idr-   Úopcionesr   ZOPCION_INVALIDAr   r   r   Zcanal_sling)r,   Úgetr    Ú	enumerater%   r   )r2   r(   r/   r)   r3   ZelegidoZ	resultador   r   r	   Úasignar_canal_sling_a_tarjeta   s     
ÿ" r6   )r   )r   )
Ú__doc__r   r   Zhermes_football_v3dr   Zhermes_football_cards_v42r   r   r,   r6   r   r   r   r	   Ú<module>   s   
