
    sj                         d dl mZ d dlmZ d dlZd dlZd dlZddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZ dd	lmZmZmZ ddZddZddZdS )    )annotations)datetimeN   )	AppConfig)get_db_connection)send_alert_email)etat_to_intparse_date_onlyparse_iso_datetimetoxines_to_str)fetch_sites_mappinginsert_history_if_newupdate_site_current_stateapi_urlstrreturndictc                    ddi}t          j        | |d          }|                                 |                                S )Nz
User-Agentz3Mozilla/5.0 (compatible; import_situations_api/1.2)   )headerstimeout)requestsgetraise_for_statusjson)r   r   responses      3/var/www/html/analyses/import_situations/service.pyfetch_api_datar      sC    RSG|GWbAAAH==??    configr   loggerlogging.LoggerNonec                V   t          j                    }d}d}d}d }|                    d           	 	 t          | j        |          }n# t
          $ r |                    d           Y |&	 |                                 n# t
          $ r Y nw xY wt          j                    }||z
                                  }|                    d|	                    d          |	                    d          |           |
                    d|	                    d          |	                    d          ||||           d S w xY w	 t          | j                  }	n'# t
          $ r}
|                    d|
           |                    dt          j                               Y d }
~
|&	 |                                 n# t
          $ r Y nw xY wt          j                    }||z
                                  }|                    d|	                    d          |	                    d          |           |
                    d|	                    d          |	                    d          ||||           d S d }
~
ww xY w|	                    d	          }t#          ||          \  }}|                    d
|||           |	                    dg           }|s|
                    d           	 |&	 |                                 n# t
          $ r Y nw xY wt          j                    }||z
                                  }|                    d|	                    d          |	                    d          |           |
                    d|	                    d          |	                    d          ||||           d S t%          |          }|                    dt'          |                     g }|D ]}|                    dd          dk    r|                    d          pd                                }|sJ|                    |          }|s|dz  }g|                    dd          }|                    d          }|                    d          }|pd                                pd }t+          |                    d                    }t-          |          }t/          ||          }|D ]}|d         }|d         }|d         }|                    d|||||||           |                    d          }|=t1          |          |k    r*|                    ||t1          |          ||||d           	 t5          |||||||           |dz  }t7          |||||||||	  	         |dz  }# t
          $ rI}
|                    d||
           |                    dt          j                               Y d }
~
d }
~
ww xY w	 |                                 nT# t
          $ rG}
|                    d |
           |                    dt          j                               Y d }
~
nd }
~
ww xY w|rt;          | j        ||           |                    d!|||           nS# t
          $ rF}
|                    d"|
           |                    t          j                               Y d }
~
nd }
~
ww xY w|&	 |                                 n# t
          $ r Y nw xY wt          j                    }||z
                                  }|                    d|	                    d          |	                    d          |           |
                    d|	                    d          |	                    d          ||||           d S # |&	 |                                 n# t
          $ r Y nw xY wt          j                    }||z
                                  }|                    d|	                    d          |	                    d          |           |
                    d|	                    d          |	                    d          ||||           w xY w)#Nr   u*   Démarrage du script import_situations_apiu.   Impossible de se connecter à la base, arrêt.uD   Fin du script import_situations_api - début=%s fin=%s durée=%.2f sz%Y-%m-%d %H:%M:%SuX   import_situations_api - Résumé  : debut=%s fin=%s durée=%.2fs MAJ=%d HISTO=%d SKIP=%du$   Erreur lors de l'appel à l'API : %szTraceback : %sdataActualizacionuM   API récupérée - dataActualizacion=%s (date_document=%s, heure_document=%s)estadoZonasu2   Aucune entrée 'estadoZonas' dans la réponse API.u2   Mapping sites chargé : %d noms_poligono distinctstipo BI_CVnomer   estadoestadoDetalledataSituacionAdministrativa
toxicidadeidnomnom_poligonoui   Mise à jour site id=%s (nom='%s', nom_poligono='%s') -> etat=%s, plan=%s, toxines=%s, date_changement=%setat_administratifnom_siter1   
etat_avant
etat_apresplantoxinesdate_changement)id_siter7   r8   r2   date_changement_etat)r:   date_documentheure_documentr7   r8   r2   r;   u?   Erreur lors de la mise à jour/historisation du site id=%s : %szErreur lors du commit : %suc   Traitement terminé : %d mises à jour, %d tentatives d'historisation, %d zones sans correspondancez1Erreur inattendue dans import_situations_api : %s)r   nowinfor   env	Exceptionerrorclosetotal_secondsstrftimewarningr   r   debug	traceback
format_excr   r   r   lenstripr   r	   r
   intappendr   r   commitr   ) r    r!   
start_timeupdated_counthistorised_countskipped_no_matchconnend_timedurationdataexcdata_actualizacionr<   r=   estado_zonasmappingstate_changesitemr*   sites_for_nome
estado_txtestado_detalledata_sit_txtr7   r8   etat_admin_intr9   site_rowr:   r4   r1   etat_precedents                                    r   
run_importrd      sU
   JMD
KK<===[
	$VZ88DD 	 	 	LLIJJJ@ 

    <>>z)88::R 344122		
 	
 	
 	f 344122	
 	
 	
 	
 	
a		!&.11DD 	 	 	LL?EEELL)9+?+A+ABBBFFFr 

    <>>z)88::R 344122		
 	
 	
 	f 344122	
 	
 	
 	
 	
U	
 "XX&9::(:;Mv(V(V%~[		
 	
 	
 xxr22 	NNOPPPV 

    <>>z)88::R 344122		
 	
 	
 	f 344122	
 	
 	
 	
 	
o &d++H#g,,WWW$&  P	K P	KDxx##w..HHV$$*1133D $[[..N!  A% (B//J!XXo66N88$ABBL"(b//119TD$TXXl%;%;<<G(44N-lFCCO* :K :K"4.#E?'7 #	 	 	 "*.B!C!C!-#n2E2E2W2W!(($,(4&).&9&9&4 $#*+:* *   K- '! '+9-<    "Q&M) '&3'5! '+9-<
 
 
 
 %)$$  K K KLLY  
 LL!193G3I3IJJJJJJJJKi:Kx	CKKMMMM 	C 	C 	CLL5s;;;LL)9+?+A+ABBBBBBBB	C  	@VZ???q		
 	
 	
 	
  - - -H#NNNY)++,,,,,,,,- 

    <>>z)88::R 344122		
 	
 	
 	f 344122	
 	
 	
 	
 	
 

    <>>z)88::R 344122		
 	
 	
 	f 344122	
 	
 	
 	
s@  A	 Z/ 	D=(Z/ ,B 
BB<D==Z/ E Z/ I;"=I6Z/ &F; ;
GG6I;;A0Z/ /L 
LL?GZ/ 8V<;Z/ <
X>X
Z/ 
XZ/ X* )Z/ *
Y;4=Y61Z/ 6Y;;3Z/ ._ /
[?9<[:5_ :[??_ \ 
\'&\'b(_.-b(.
_;8b(:_;;B-b(rL   c           	     &   | j                             dd          }| j                             dd          }t          d|pd            t          d| j                             dd                      t          d	| j                             d
d                      t          d| j                             dd                      t          d|pd            t                       |r|st          d           dS ddddddt          j                                                    dddddd d t          j                                                    dg}t          d           t          | j         ||           t          d           dS )NALERT_TOr(   	SMTP_HOSTzSMTP_HOST  : u   (non configuré)zSMTP_PORT  : 	SMTP_PORT587zSMTP_USER  : 	SMTP_USERzALERT_FROM : 
ALERT_FROMzALERT_TO   : zI[ERREUR] SMTP_HOST ou ALERT_TO manquant dans .env - impossible d'envoyer.r   zSada 1r   B1zLipofilicas,ASPr3   z
Cambados 3zHEnvoi de l'email de test avec 2 cas : un site ferme et un site ouvert...z$Termine - verifiez votre boite mail.)r@   r   printr   r>   dater   )r    r!   alert_to_raw	smtp_hostfake_changess        r   
test_emailrr      s   :>>*b11L
{B//I	
;)9'9
;
;<<<	
>&*..e<<
>
>???	
K&*..6HII
K
KLLL	
L&*..7IJJ
L
LMMM	
>,<*<
>
>???	GGG L YZZZq !$('|~~2244	
 	
 %('|~~2244	
 	
L* 

TUUUVZ666	
01111r   )r   r   r   r   )r    r   r!   r"   r   r#   )r    r   r!   r"   r   rL   )
__future__r   r   loggingrH   r   r    r   dbr   email_alertsr   parsersr	   r
   r   r   
repositoryr   r   r   r   rd   rr    r   r   <module>rz      s
   " " " " " "                   ! ! ! ! ! ! * * * * * * U U U U U U U U U U U U ] ] ] ] ] ] ] ] ] ]   c
 c
 c
 c
L& & & & & &r   