1. Implementando mecanismos de lembrete
Usando o módulo datetime
e
timedelta
Às vezes, para criar um lembrete, você precisa calcular
quanto tempo falta para um evento. É aí que o
timedelta
entra em cena:
from datetime import datetime, timedelta
# Calculando o horário do lembrete
meeting_time = datetime(2023, 10, 30, 15, 0, 0)
reminder_time = meeting_time - timedelta(minutes=30)
print(f"Você precisa enviar um lembrete em: {reminder_time}")
Mensagem simples de notificação no console
O primeiro passo são notificações simples. Claro, não são tão "charmosas" como notificações push no smartphone, mas é um bom começo.
import time
def simple_reminder(message, delay):
print(f"Em {delay} segundos, você receberá um lembrete...")
time.sleep(delay)
print(f"Lembrete: {message}")
simple_reminder("Hora da reunião!", 10)
2. Usando schedule
para lembretes periódicos
Quando você precisa de lembretes recorrentes,
schedule
é o seu melhor amigo. Você pode
definir intervalos diferentes, como diário ou semanal:
import schedule
import time
def meeting_reminder():
print("Lembrete: você tem uma reunião em breve!")
# Lembrete todo dia às 14:30
schedule.every().day.at("14:30").do(meeting_reminder)
while True:
schedule.run_pending()
time.sleep(1)
3. Notificações baseadas no tempo com a biblioteca
plyer
Para fazer notificações mais "reais", podemos usar a
biblioteca plyer
para enviar notificações do
sistema:
from plyer import notification
import time
def plyer_notification(title, message):
notification.notify(
title=title,
message=message,
app_name='Python Reminder',
timeout=10
)
# Exemplo de uso
plyer_notification("Lembrete!", "Hora da reunião.")
A função notification.notify()
exibirá uma
notificação padrão do sistema operacional.
4. Lembrete enviado por e-mail
Para enviar notificações por e-mail em Python usamos o
módulo smtplib
. No exemplo a seguir, vamos
configurar o envio de lembretes por e-mail usando um
servidor SMTP.
import smtplib
from email.mime.text import MIMEText
import schedule
import time
def send_email_reminder():
sender = "your_email@example.com"
receiver = "receiver_email@example.com"
subject = "Lembrete de tarefa"
body = "Isso é um lembrete automático: não se esqueça de concluir sua tarefa hoje."
# Criando a mensagem
msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = sender
msg["To"] = receiver
# Conexão com o servidor SMTP e envio do e-mail
with smtplib.SMTP("smtp.example.com", 587) as server:
server.starttls()
server.login(sender, "your_password")
server.sendmail(sender, receiver, msg.as_string())
print("Lembrete enviado por e-mail.")
# Agendando o envio do lembrete todos os dias às 8:30 da manhã
schedule.every().day.at("08:30").do(send_email_reminder)
while True:
schedule.run_pending()
time.sleep(1)
Aqui, a função send_email_reminder()
envia um
lembrete por e-mail. Configure o endereço do remetente, do
destinatário e o servidor SMTP. Esse método facilita a
automação de envio de notificações por e-mail.
5. Lembrete pelo Telegram
Para enviar lembretes via Telegram, você pode usar a API
dele. Neste exemplo, enviamos uma notificação para um
chat do Telegram usando requests
.
Configuração:
-
Crie um bot no Telegram através do BotFather e obtenha o
API_TOKEN
. -
Encontre seu
CHAT_ID
, enviando uma mensagem para o bot e obtendo o ID do chat pela API.
import requests
import schedule
import time
def send_telegram_reminder():
api_token = "YOUR_API_TOKEN"
chat_id = "YOUR_CHAT_ID"
message = "Lembrete: hoje você tem uma tarefa importante!"
url = f"https://api.telegram.org/bot{api_token}/sendMessage"
payload = {
"chat_id": chat_id,
"text": message
}
response = requests.post(url, data=payload)
if response.status_code == 200:
print("Lembrete enviado via Telegram.")
else:
print("Erro ao enviar lembrete via Telegram.")
# Agendando o envio do lembrete todos os dias às 9:00 da manhã
schedule.every().day.at("09:00").do(send_telegram_reminder)
while True:
schedule.run_pending()
time.sleep(1)
Agora, todos os dias às 9:00 da manhã, o bot enviará uma notificação para o chat do Telegram configurado.
6. Dicas extras para configurar notificações
- Tratamento de erros: Adicione tratamento de erros para envio de notificações, por exemplo, verificando a conexão com o servidor de e-mail ou Telegram.
-
Registro de logs: Use a biblioteca
logging
para registrar eventos de notificações. Isso ajuda a monitorar quando os lembretes realmente foram enviados. - Configurações flexíveis: Se planeja usar lembretes em um projeto, crie uma função para definir dinamicamente horários e métodos de notificações, para permitir ajustes nas configurações.
GO TO FULL VERSION