Spaces:
Runtime error
Runtime error
danielraynaud
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -10,11 +10,29 @@ from database.db_manager import DatabaseManager
|
|
10 |
from database.db_operations import adicionar_lote_questoes
|
11 |
from study_generators import StudyPlanGenerator
|
12 |
import logging
|
|
|
13 |
|
14 |
# Configuração de logging
|
15 |
logging.basicConfig(level=logging.INFO)
|
16 |
logger = logging.getLogger(__name__)
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
class CRMJABot:
|
19 |
def __init__(self):
|
20 |
logger.info("Iniciando CRMJABot...")
|
@@ -68,11 +86,21 @@ class CRMJABot:
|
|
68 |
areas = parts[3].split(",") if len(parts) > 3 else []
|
69 |
|
70 |
plano = self.planner.create_study_plan(user_id, horas, data_alvo, areas)
|
|
|
71 |
return f"Plano criado: {plano}"
|
72 |
except Exception as e:
|
73 |
logger.error(f"Erro ao criar plano: {e}")
|
74 |
return "Erro ao criar plano."
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
def check_progress(self, message: str, user_id: str) -> str:
|
77 |
try:
|
78 |
metrics = self.analytics.calculate_study_metrics(user_id)
|
|
|
10 |
from database.db_operations import adicionar_lote_questoes
|
11 |
from study_generators import StudyPlanGenerator
|
12 |
import logging
|
13 |
+
from twilio.rest import Client
|
14 |
|
15 |
# Configuração de logging
|
16 |
logging.basicConfig(level=logging.INFO)
|
17 |
logger = logging.getLogger(__name__)
|
18 |
|
19 |
+
# Configuração Twilio para notificações via WhatsApp
|
20 |
+
TWILIO_ACCOUNT_SID = 'your_account_sid'
|
21 |
+
TWILIO_AUTH_TOKEN = 'your_auth_token'
|
22 |
+
TWILIO_WHATSAPP_NUMBER = 'whatsapp:+14155238886'
|
23 |
+
client = Client(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
|
24 |
+
|
25 |
+
def send_whatsapp_message(to_number: str, message: str):
|
26 |
+
try:
|
27 |
+
client.messages.create(
|
28 |
+
body=message,
|
29 |
+
from_=TWILIO_WHATSAPP_NUMBER,
|
30 |
+
to=f'whatsapp:{to_number}'
|
31 |
+
)
|
32 |
+
logger.info(f"Mensagem enviada para {to_number}")
|
33 |
+
except Exception as e:
|
34 |
+
logger.error(f"Erro ao enviar mensagem pelo WhatsApp: {e}")
|
35 |
+
|
36 |
class CRMJABot:
|
37 |
def __init__(self):
|
38 |
logger.info("Iniciando CRMJABot...")
|
|
|
86 |
areas = parts[3].split(",") if len(parts) > 3 else []
|
87 |
|
88 |
plano = self.planner.create_study_plan(user_id, horas, data_alvo, areas)
|
89 |
+
self.schedule_study_notifications(user_id, horas, data_alvo)
|
90 |
return f"Plano criado: {plano}"
|
91 |
except Exception as e:
|
92 |
logger.error(f"Erro ao criar plano: {e}")
|
93 |
return "Erro ao criar plano."
|
94 |
|
95 |
+
def schedule_study_notifications(self, user_id: str, horas: int, data_alvo: str):
|
96 |
+
try:
|
97 |
+
# Envia notificações diárias para acompanhar os estudos
|
98 |
+
to_number = self.db.get_user_phone(user_id) # Método fictício para obter o número do usuário
|
99 |
+
message = f"Lembrete: Estude {horas} horas hoje para atingir sua meta até {data_alvo}!"
|
100 |
+
send_whatsapp_message(to_number, message)
|
101 |
+
except Exception as e:
|
102 |
+
logger.error(f"Erro ao agendar notificações: {e}")
|
103 |
+
|
104 |
def check_progress(self, message: str, user_id: str) -> str:
|
105 |
try:
|
106 |
metrics = self.analytics.calculate_study_metrics(user_id)
|