This repository has been archived by the owner on Dec 3, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
89 lines (72 loc) · 2.83 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import os
import pandas as pd
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from mapas_inundacao import page
# Caminhos dos arquivos
previous_file = "data/data_previous.xlsx"
current_file = "data/data_today.xlsx"
# Carregando dados do dia anterior
if os.path.exists(previous_file):
df_previous = pd.read_excel(previous_file)
else:
df_previous = pd.DataFrame()
df_previous = df_previous.fillna("")
# Salvando dados de hoje
page.df_page.to_excel(current_file, index=False)
# Carregando dados de hoje
df_today = pd.read_excel(current_file)
# Limpando os NAs
df_today = df_today.fillna("")
# Armazenando as barragens com novas colunas preenchidas
barragens_com_novas_colunas = {}
# Iterando pelas colunas CodigoMapa
codigo_mapa_columns = [col for col in df_today.columns if col.startswith("CodigoMapa")]
for col in codigo_mapa_columns:
for index, row in df_today.iterrows():
id_barragem = row["ID Barragem"]
if id_barragem in df_previous["ID Barragem"].values:
previous_value = df_previous[df_previous["ID Barragem"] == id_barragem][col].values[0]
current_value = row[col]
# Verificando se a coluna estava vazia no df_previous e se agora tem um valor
if previous_value == "" and current_value != "":
barragem = row["NomeBarragem"]
if barragem not in barragens_com_novas_colunas:
barragens_com_novas_colunas[barragem] = []
barragens_com_novas_colunas[barragem].append(col)
print("Barragens com novas colunas preenchidas:", barragens_com_novas_colunas)
# Configurando servidor SMTP
server_smtp = "smtp.gmail.com"
port = 587
sender_email = os.getenv("SENDER_EMAIL")
password = os.getenv("PASSWORD_EMAIL")
receive_email = os.getenv("RECEIVE_EMAIL").split(",")
subject = "Mapa de Inundação adicionado"
# Enviando e-mail se houver novas colunas
if barragens_com_novas_colunas:
body_lines = []
for barragem, colunas in barragens_com_novas_colunas.items():
body_lines.append(
f"• Barragem <b>{barragem}</b> teve um novo Mapa de Inundação adicionado."
)
body = "<br>".join(body_lines)
# Criando o e-mail
msg = MIMEMultipart()
msg["From"] = sender_email
msg["To"] = ", ".join(receive_email)
msg["Subject"] = subject
msg.attach(MIMEText(body, "html"))
# Conectando o servidor SMTP
try:
server = smtplib.SMTP(server_smtp, port)
server.starttls()
server.login(sender_email, password)
server.sendmail(sender_email, receive_email, msg.as_string())
print("E-mail enviado com sucesso")
except Exception as e:
print(f"Houve algum erro: {e}")
finally:
server.quit()
# Substituindo o arquivo do dia anterior pelo de hoje
os.replace(current_file, previous_file)