Files
Agendamento-Servicos-V1/Lembrator.py

118 lines
4.4 KiB
Python

from BD_manager_Mysql import get_events
from datetime import datetime
from time import sleep
import asyncio
from telegram import Bot
import os
from twilio.rest import Client
from dotenv import load_dotenv
from BD_manager_Mysql import update_events
# ==========================
# Enviar mensagem WhatsApp
# ==========================
def enviar_whatsapp(numero_destino, mensagem):
# Carrega variáveis do arquivo .env
load_dotenv()
# Credenciais Twilio
ACCOUNT_SID = os.getenv("TWILIO_ACCOUNT_SID")
AUTH_TOKEN = os.getenv("TWILIO_AUTH_TOKEN")
TWILIO_WHATSAPP_NUMBER = os.getenv("TWILIO_WHATSAPP_NUMBER")
# Cria cliente Twilio
client = Client(ACCOUNT_SID, AUTH_TOKEN)
numero_destino = numero_destino.replace("whatsapp:", "")
message = client.messages.create(
from_=TWILIO_WHATSAPP_NUMBER,
body=mensagem,
to=f"whatsapp:{numero_destino}"
)
return message.sid
TOKEN = "8402367863:AAGoEBHvoK7YRdTLXCBqaZ-PVQlFp_1V3zI"
def enviar_mensagem_telegram(chat_id, mensagem):
async def enviar_mensagem(chat_id, mensagem):
bot = Bot(token=TOKEN)
await bot.send_message(chat_id=chat_id, text=mensagem)
# chamada da função
asyncio.run(enviar_mensagem(chat_id, mensagem))
while True:
sleep(3600) # Espera 10 segundos antes de verificar novamente
events = get_events()
for event in events:
#print(f"ID: {event['id']}, Date: {event['event_date']}, Start: {event['start_time']}, End: {event['end_time']}, Title: {event['title']}, Description: {event['description']}, Chat ID: {event['chat_id']}, Name: {event['name']}, Created By: {event['created_by']}")
#print(event['event_date'],event['start_time'])
id_envent = event['id']
event_date = event['event_date']
start_time = event['start_time']
name = event['name']
chat_id = event['chat_id']
avisos = event['avisos']
created_by = event['created_by']
# Juntar data + hora em um único datetime
evento_datetime = datetime.strptime(
f"{event_date} {start_time}",
"%Y-%m-%d %H:%M:%S"
)
agora = datetime.now() # horário atual
diferenca = evento_datetime - agora
horas_faltando = diferenca.total_seconds() / 3600
#quando faltar 24 horas um aviso será enviado
if(horas_faltando <= 24 and horas_faltando > 0 and avisos == "0"):
print(f"Evento em {evento_datetime} - faltam {horas_faltando:.2f} horas")
if(created_by == "Telegram"):
mensagem = f"Olá {name}, voce tem um horario agendado dia {event_date} as {start_time}"
update_events(id_envent, "avisos", "1")
enviar_mensagem_telegram(str(chat_id), mensagem)
if(created_by == "Whatsapp"):
mensagem = f"Olá {name}, voce tem um horario agendado dia {event_date} as {start_time}"
update_events(id_envent, "avisos", "1")
enviar_whatsapp(chat_id, mensagem)
#quando faltar 12 horas um aviso será enviado
if(horas_faltando <= 12 and horas_faltando > 0 and avisos == "1"):
print(f"Evento em {evento_datetime} - faltam {horas_faltando:.2f} horas")
if(created_by == "Telegram"):
mensagem = f"Olá {name}, voce tem um horario agendado dia {event_date} as {start_time}"
update_events(id_envent, "avisos", "2")
enviar_mensagem_telegram(str(chat_id), mensagem)
if(created_by == "Whatsapp"):
mensagem = f"Olá {name}, voce tem um horario agendado dia {event_date} as {start_time}"
update_events(id_envent, "avisos", "2")
enviar_whatsapp(chat_id, mensagem)
#quando faltar 3 horas um aviso será enviado
if(horas_faltando <= 3 and horas_faltando > 0 and avisos == "2"):
print(f"Evento em {evento_datetime} - faltam {horas_faltando:.2f} horas")
if(created_by == "Telegram"):
mensagem = f"Olá {name}, voce tem um horario agendado dia {event_date} as {start_time}"
update_events(id_envent, "avisos", "3")
enviar_mensagem_telegram(str(chat_id), mensagem)
if(created_by == "Whatsapp"):
mensagem = f"Olá {name}, voce tem um horario agendado dia {event_date} as {start_time}"
update_events(id_envent, "avisos", "3")
enviar_whatsapp(chat_id, mensagem)