CodeGym /Java Kurs /Python SELF DE /Erstellung von Erinnerungen und Benachrichtigungen basier...

Erstellung von Erinnerungen und Benachrichtigungen basierend auf der Zeit

Python SELF DE
Level 40 , Lektion 3
Verfügbar

1. Umsetzung von Erinnerungsmechanismen

Verwendung von datetime und timedelta

Manchmal musst du berechnen, wie viel Zeit bis zu einem Ereignis bleibt, um eine Erinnerung zu erstellen. Dabei hilft timedelta:

Python

from datetime import datetime, timedelta

# Berechnung der Erinnerungszeit
meeting_time = datetime(2023, 10, 30, 15, 0, 0)
reminder_time = meeting_time - timedelta(minutes=30)

print(f"Du solltest die Erinnerung um {reminder_time} senden.")

Einfache Benachrichtigung über die Konsole

Der erste Schritt sind einfache Benachrichtigungen. Sie sind zwar nicht so „cool“ wie Push-Benachrichtigungen auf einem Smartphone, aber für den Anfang reicht das.

Python

import time

def simple_reminder(message, delay):
    print(f"In {delay} Sekunden folgt eine Erinnerung...")
    time.sleep(delay)
    print(f"Erinnerung: {message}")

simple_reminder("Es ist Zeit für das Meeting!", 10)

2. Verwendung von schedule für wiederholte Erinnerungen

Wenn du möchtest, dass sich eine Erinnerung wiederholt, ist schedule dein Helfer. Du kannst verschiedene Intervalle einstellen, wie täglich oder wöchentlich:

Python

import schedule
import time

def meeting_reminder():
    print("Erinnerung: Dein Meeting beginnt bald!")

# Erinnerung jeden Tag um 14:30
schedule.every().day.at("14:30").do(meeting_reminder)

while True:
    schedule.run_pending()
    time.sleep(1)

3. Zeitbasierte Benachrichtigungen mit der plyer-Bibliothek

Um Benachrichtigungen „echter“ zu machen, können wir die Bibliothek plyer verwenden, um Systembenachrichtigungen zu senden:

Python

from plyer import notification
import time

def plyer_notification(title, message):
    notification.notify(
        title=title,
        message=message,
        app_name='Python Reminder',
        timeout=10
    )

# Anwendungsbeispiel
plyer_notification("Erinnerung!", "Es ist Zeit für das Meeting.")

Die Funktion notification.notify() zeigt eine Standard-Systembenachrichtigung an.

4. Erinnerung per E-Mail senden

Um Benachrichtigungen per E-Mail zu senden, wird in Python das Modul smtplib verwendet. Im folgenden Beispiel richten wir den Versand einer Erinnerung per E-Mail über einen SMTP-Server ein.

Python

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 = "Aufgaben-Erinnerung"
    body = "Dies ist eine automatische Erinnerung: Vergiss nicht, deine Aufgabe heute zu erledigen."

    # Nachricht erstellen
    msg = MIMEText(body)
    msg["Subject"] = subject
    msg["From"] = sender
    msg["To"] = receiver

    # Verbindung zum SMTP-Server herstellen und E-Mail senden
    with smtplib.SMTP("smtp.example.com", 587) as server:
        server.starttls()
        server.login(sender, "your_password")
        server.sendmail(sender, receiver, msg.as_string())
    
    print("Erinnerung per E-Mail gesendet.")

# Erinnerung jeden Tag um 8:30 Uhr einplanen
schedule.every().day.at("08:30").do(send_email_reminder)

while True:
    schedule.run_pending()
    time.sleep(1)

Hier sendet send_email_reminder() eine Benachrichtigung per E-Mail. Passe die Absender- und Empfängeradresse sowie den SMTP-Server an. Diese Methode ermöglicht es, E-Mail-Benachrichtigungen einfach zu automatisieren.

5. Erinnerung über Telegram

Um Erinnerungen über Telegram zu senden, kannst du dessen API verwenden. In diesem Beispiel senden wir eine Benachrichtigung in einen Telegram-Chat mit requests.

Einrichtung:

  1. Erstelle einen Bot in Telegram über BotFather und erhalte das API_TOKEN.
  2. Finde deine CHAT_ID, indem du eine Nachricht an deinen Bot sendest und die Chat-ID über die API ermittelst.
Python

import requests
import schedule
import time

def send_telegram_reminder():
    api_token = "YOUR_API_TOKEN"
    chat_id = "YOUR_CHAT_ID"
    message = "Erinnerung: Heute steht eine wichtige Aufgabe an!"

    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("Erinnerung über Telegram gesendet.")
    else:
        print("Fehler beim Senden der Erinnerung über Telegram.")

# Erinnerung jeden Tag um 9:00 Uhr einplanen
schedule.every().day.at("09:00").do(send_telegram_reminder)

while True:
    schedule.run_pending()
    time.sleep(1)

Nun sendet der Bot jeden Tag um 9:00 Uhr morgens eine Benachrichtigung in den angegebenen Telegram-Chat.

6. Zusätzliche Tipps zur Einrichtung von Benachrichtigungen

  1. Fehlerbehandlung: Füge eine Fehlerbehandlung für den Versand von Benachrichtigungen hinzu, beispielsweise überprüfst du die Verbindung zum E-Mail- oder Telegram-Server.
  2. Protokollierung: Verwende die Bibliothek logging, um Ereignisse im Zusammenhang mit Erinnerungen zu protokollieren. Das hilft, den tatsächlichen Versand von Erinnerungen nachzuverfolgen.
  3. Flexibilität der Einstellungen: Wenn du planst, Erinnerungen in einem Projekt zu verwenden, erstelle eine Funktion zur dynamischen Festlegung von Zeiten und Benachrichtigungsmethoden, um die Einstellungen flexibel anpassen zu können.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION