U
    2¡Új7  ã                   @   sr   d Z ddlZddlmZmZ ddlmZ ddlmZ dd„ Zdd	„ Z	d
d„ Z
dd„ Zdd„ Zddd„Zdd„ ZdS )u•   Coordinador de acciones de FÃºtbol. No maneja ni devuelve secretos.
Usa los adaptadores existentes; no crea URLs de canales ni modifica otras ligas.
é    N)ÚdatetimeÚtimezone)Úurlsplit)ÚDBc               
   C   sJ   t jdt d dd��*} t j| _dd„ |  d¡D ƒW  5 Q R £ S Q R X d S )Nzfile:z?mode=roT)Zuric                 S   s   g | ]}t |ƒ‘qS © )Údict©Ú.0Úrr   r   ú1/var/www/html/NFL_ST/hermes_futbol_coordinador.pyÚ
<listcomp>   s     z_eventos.<locals>.<listcomp>zCSELECT id,home,away,starts_utc,local_day,logo,away_logo FROM events)Úsqlite3Zconnectr   ZRowZrow_factoryZexecute)Zdbr   r   r   Ú_eventos
   s    r   c                    s²   ddl m‰  ˆ tˆpdƒƒ‰ˆs,d ddifS tƒ }‡fdd„|D ƒ}|rT|d d fS ‡ ‡fdd„|D ƒ}|szd d	ˆd
œfS t|ƒdkr¦d ddd„ |d d… D ƒdœfS |d d fS )Nr   )ÚnormÚ ÚestadoZCONSULTA_VACIAc                    s   g | ]}|d  ˆ kr|‘qS )Úidr   r   )Úterminor   r   r      s      z_resolver.<locals>.<listcomp>c                    sL   g | ]D}ˆˆ |d  ƒksDˆˆ |d ƒksDˆˆ |d  d |d  ƒkr|‘qS )ÚhomeÚawayú r   r   )r   Útr   r   r      s
        ZSIN_TARJETA)r   Zbusquedaé   ZVARIAS_TARJETASc                 S   s0   g | ](}|d  |d d |d  |d dœ‘qS ©r   r   ú vs r   Ú	local_day)r   ÚpartidoÚfechar   r   r   r   r   r      s     é   )r   Zopciones)Úhermes_football_cards_v42r   Ústrr   Úlen)r   ÚrowsÚexactÚfoundr   )r   r   r   r   Ú	_resolver   s         r%   c                 C   s0   t | ƒ\}}|r|S ddlm} ||d |d�S )z?Guarda URL completa en la tarjeta, sin exigir coincidencia EPG.r   )Úforzar_enlace_futbolr   )Úenlace)r%   r   r&   )Úequipo_o_idr'   ÚeventÚerrorr&   r   r   r   Úasignar_enlace   s
     r+   c                 C   s   ddl m} || ||ƒS )uJ   Utiliza el catÃ¡logo/EPG autorizado de V5 y mantiene opciones por sesiÃ³n.r   )Úbuscar_opciones)Úhermes_football_v5r,   )ZequipoÚusuarioÚsesionr,   r   r   r   Úbuscar_fuentes%   s    r0   c                 C   s   ddl m} |t| ƒ||ƒS )Nr   )Úelegir_opcion)r-   r1   Úint)Znumeror.   r/   r1   r   r   r   Úelegir_fuente+   s    r3   Tc              
   C   sj  ddl m}m} t| ƒ\}}|r$|S |d |d  }}	|pF| d¡pFd}
|pX| d¡pXd}g }|�rÎ|
rn|�sÎtƒ }|D ]Ò}|
s®||d ƒ||ƒkr®|d r®|d }
| d¡ |
sà||d ƒ||ƒkrà|d rà|d }
| d¡ |�s||d ƒ||	ƒk�r|d �r|d }| d	¡ |sx||d ƒ||	ƒkrx|d rx|d }| d	¡ qx|
�rX|�sÎ�z:dd
lm} ddl	m
} ddlm} | |d ¡}||dd�\}}|D ]î}|
�sà||d ƒ||ƒk�rà| d¡�rà|d }
| d¡ |
�s||d ƒ||ƒk�r| d¡�r|d }
| d¡ |�sT||d ƒ||	ƒk�rT| d¡�rT|d }| d¡ |�s¢||d ƒ||	ƒk�r¢| d¡�r¢|d }| d¡ �q¢W n8 tk
�rÌ } z| dt|ƒj ¡ W 5 d}~X Y nX dd„ }|
�rê||
ƒ�rê|
nd}
|�r||ƒ�r|nd}|
�s&|�s&d|d |	 |dœS ||d d|
�p8d|�p@dd�}||d< t|
ƒ|d< t|ƒ|d< |S )zeBusca escudos en eventos ESPN ya importados y, si es necesario, consulta el adaptador ESPN existente.r   )r   r&   r   r   Zlogor   Z	away_logoZ
base_localZbase_visitante)Úfetch)ÚZoneInfo)Údater   éd   )ÚlimitZ
espn_localZespn_visitantezespn_no_disponible:Nc                 S   s   t | ƒ}|jdko|jdkS )NÚhttps)za.espncdn.comza1.espncdn.comza2.espncdn.com)r   ÚschemeÚhostname)ÚuÚpr   r   r   ÚvalidoO   s    zasignar_logos.<locals>.validoZSIN_LOGOS_VERIFICADOSr   )r   r   Úfuentesr   )r'   Z
logo_localZlogo_visitanter?   Zlogo_local_encontradoZlogo_visitante_encontrado)r   r   r&   r%   Úgetr   ÚappendZhermes_footballr4   Zzoneinfor5   r   r6   ÚfromisoformatÚ	ExceptionÚtypeÚ__name__Úbool)r(   Z	url_localZurl_visitanteZautocompletarr   r&   r)   r*   r   r   ÚlocalZvisitaZsourcesr"   r
   r4   r5   r6   r   ÚresultsÚ_Úexcr>   Úresultr   r   r   Úasignar_logos0   sn        
   
&  
   (  
(  
(  
(  &  rL   c                  C   s8   t ƒ } dt| ƒtdd„ | D ƒƒdd„ | d d… D ƒdœS )NZOKc                 s   s   | ]}|d    d¡V  qdS )r   zmanual:N)Ú
startswith)r	   Úxr   r   r   Ú	<genexpr>^   s     z estado_futbol.<locals>.<genexpr>c                 S   s0   g | ](}|d  |d d |d  |d dœ‘qS r   r   r   r   r   r   r   _   s     z!estado_futbol.<locals>.<listcomp>é
   )r   ZtarjetasZmanualesZejemplos)r   r!   Úsum)r"   r   r   r   Úestado_futbol\   s    ÿrR   )NNT)Ú__doc__r   r   r   Úurllib.parser   Zhermes_football_v3dr   r   r%   r+   r0   r3   rL   rR   r   r   r   r   Ú<module>   s   
,