118 lines
4.4 KiB
Python
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)
|