1. Mise en œuvre des mécanismes de rappel
Utilisation du module datetime
et
timedelta
Parfois, pour créer un rappel, tu dois calculer combien de temps il reste avant un événement. C'est là que timedelta
entre en jeu :
from datetime import datetime, timedelta
# Calcul du temps de rappel
meeting_time = datetime(2023, 10, 30, 15, 0, 0)
reminder_time = meeting_time - timedelta(minutes=30)
print(f"Tu devras envoyer un rappel à : {reminder_time}")
Une simple notification via la console
La première étape, c'est d'utiliser de simples notifications. Bien sûr, elles ne sont pas aussi "stylées" que les notifications push sur ton smartphone, mais pour commencer, ça suffira.
import time
def simple_reminder(message, delay):
print(f"Dans {delay} secondes, un rappel s'affichera...")
time.sleep(delay)
print(f"Rappel : {message}")
simple_reminder("Il est temps pour la réunion !", 10)
2. Utiliser schedule
pour des rappels périodiques
Quand tu as besoin que le rappel se répète,
schedule
devient ton allié. Tu peux définir différents intervalles, comme quotidien ou
hebdomadaire :
import schedule
import time
def meeting_reminder():
print("Rappel : tu as bientôt une réunion !")
# Rappel tous les jours à 14:30
schedule.every().day.at("14:30").do(meeting_reminder)
while True:
schedule.run_pending()
time.sleep(1)
3. Notifications temporelles avec la bibliothèque
plyer
Pour rendre les notifications plus "réelles", nous pouvons
utiliser la bibliothèque plyer
, pour envoyer
des notifications système :
from plyer import notification
import time
def plyer_notification(title, message):
notification.notify(
title=title,
message=message,
app_name='Python Reminder',
timeout=10
)
# Exemple d'utilisation
plyer_notification("Rappel !", "Il est temps pour la réunion.")
La fonction notification.notify()
affichera
une notification standard du système d'exploitation.
4. Rappel avec envoi d'email
Pour envoyer des notifications par email en Python, on utilise le module smtplib
. Dans
cet exemple, nous configurons l'envoi d'un rappel par email à l'aide d'un serveur 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 = "Rappel sur une tâche"
body = "Ceci est un rappel automatique : n'oublie pas de terminer ta tâche aujourd'hui."
# On forme le message
msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = sender
msg["To"] = receiver
# Connexion au serveur SMTP et envoi de l'email
with smtplib.SMTP("smtp.example.com", 587) as server:
server.starttls()
server.login(sender, "your_password")
server.sendmail(sender, receiver, msg.as_string())
print("Rappel envoyé par email.")
# Planifions l'envoi du rappel chaque jour à 8:30 du matin
schedule.every().day.at("08:30").do(send_email_reminder)
while True:
schedule.run_pending()
time.sleep(1)
Ici, send_email_reminder()
envoie
une notification par email. Configure l'adresse de l'expéditeur, du destinataire et le serveur SMTP.
Cette méthode permet d'automatiser l'envoi de rappels par email facilement.
5. Rappel via Telegram
Pour envoyer des rappels via Telegram, tu peux utiliser son API. Dans cet exemple, nous envoyons une
notification dans un chat Telegram en utilisant requests
.
Configuration :
-
Crée un bot dans Telegram via BotFather et obtiens ton
API_TOKEN
. -
Trouve ton
CHAT_ID
, en envoyant un message au bot et en récupérant l'ID du chat via l'API.
import requests
import schedule
import time
def send_telegram_reminder():
api_token = "YOUR_API_TOKEN"
chat_id = "YOUR_CHAT_ID"
message = "Rappel : tu as une tâche importante à faire aujourd'hui !"
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("Rappel envoyé via Telegram.")
else:
print("Erreur lors de l'envoi du rappel sur Telegram.")
# Planifions l'envoi du rappel chaque jour à 9:00 du matin
schedule.every().day.at("09:00").do(send_telegram_reminder)
while True:
schedule.run_pending()
time.sleep(1)
Maintenant, chaque jour à 9:00 du matin, le bot enverra une notification au chat Telegram spécifié.
6. Conseils supplémentaires pour configurer des notifications
- Gestion des erreurs : Ajoute une gestion des erreurs pour l'envoi de notifications, par exemple, vérifie la connexion au serveur email ou Telegram.
-
Logging : Utilise la bibliothèque
logging
pour enregistrer les événements liés aux rappels. Cela t'aidera à savoir quand les rappels ont réellement été envoyés. - Flexibilité des paramètres : Si tu prévois d'utiliser les rappels dans un projet, crée une fonction pour définir dynamiquement les horaires et les types de notifications, afin d'ajuster plus facilement les paramètres.
GO TO FULL VERSION