U
    +`Új¡  ã                   @   sl   d Z ddlZddlZddlZddlmZ ddlmZmZ edƒZddddd	œZ	d
d„ Z
ddd„Zdd„ ZdS )uO   Taller privado: informes TXT, sin ejecutar cÃ³digo ni servir archivos por HTTP.é    N)ÚPath)ÚdatetimeÚtimezonez/var/lib/hermes-nexus/tallerZdiagnosticosZreportesÚcodigo)ÚdiagnosticoZreporter   Únotac                 C   sD   t | ƒ}tjdd|tjd�}t dd|¡}t dd|¡}|d d… S )	Nzhttps?://[^\s<>"\']+z[URL_OCULTA])ÚflagszU(?i)(authorization|password|passwd|api[_-]?key|token|secret|clave)\s*[:=]\s*[^\s,;}]+z\1=[OCULTO]z(?i)\bBasic\s+[A-Za-z0-9+/=]+zBasic [OCULTO]i€>  )ÚstrÚreÚsubÚI)ZtextoÚs© r   úhermes_taller.pyÚredactar   s
    r   r   c           	   	   C   s"  |t ks$t| tƒr$t|tƒr$| ¡ s,tdƒ‚tt |  }|jdddd� | d¡ t 	t
j¡ d¡}t dd|  ¡ ¡d d…  d¡p†d	}|d | d t d
¡ d }|| }|jddd��D}| dt 	t
j¡ ¡  d t| ƒd d…  d t|ƒ d ¡ W 5 Q R X | d¡ d|t|ƒddœS )Nu   Documento invÃ¡lidoTiÀ  )ÚparentsÚexist_okÚmodez%Y%m%d_%H%M%Sz
[^a-z0-9]+Ú_é-   r   é   z.txtÚxzutf-8)Úencodingz!HERMES TALLER PRIVADO
Fecha UTC: u
   
TÃ­tulo: éx   z

Ú
i€  zWinSCP/SFTP)ZguardadoZarchivoZcarpetaZdescarga)ÚSUBÚ
isinstancer	   ÚstripÚ
ValueErrorÚROOTÚmkdirÚchmodr   Znowr   ZutcÚstrftimer
   r   ÚcasefoldÚsecretsZ	token_hexÚopenÚwriteZ	isoformatr   )	ZtituloZ	contenidoZtipoZfolderZstampZslugÚnameÚpathÚfr   r   r   Úguardar_en_taller   s    $
$H
r*   c                    sX   t ˆ tƒsddi‰ d}‡ fdd„|D ƒ}tdt| ƒ dt| ƒ d tj|d	d
d� dƒS )NÚestadoZRESULTADO_DESCONOCIDO)r+   ZmotivoZpartidoZcanalZevent_idZverificacion_httpZconfirmacion_publicaZmensajec                    s   i | ]}|ˆ kr|ˆ | “qS r   r   )Ú.0Úk©Ú	resultador   r   Ú
<dictcomp>   s       z%registrar_intento.<locals>.<dictcomp>Zasignacion_zEquipo: z
Resultado real:
Fé   )Zensure_asciiÚindentr   )r   Údictr*   r	   r   ÚjsonÚdumps)Zequipor/   ZcamposZsafer   r.   r   Úregistrar_intento   s
    
 r6   )r   )Ú__doc__r4   r
   r$   Úpathlibr   r   r   r   r   r   r*   r6   r   r   r   r   Ú<module>   s   
