CodeGym /Kurslar /Python SELF AZ /Vaxta əsaslanan xatırlatmalar və bildirişlər yaratmaq

Vaxta əsaslanan xatırlatmalar və bildirişlər yaratmaq

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Xatırlatma mexanizmlərinin həyata keçirilməsi

datetimetimedelta modulunun istifadəsi

Bəzən xatırlatma yaratmaq üçün hadisəyə nə qədər vaxt qaldığını hesablamaq lazımdır. Burada timedelta köməyə gəlir:

Python

from datetime import datetime, timedelta

# Xatırlatma vaxtının hesablanması
meeting_time = datetime(2023, 10, 30, 15, 0, 0)
reminder_time = meeting_time - timedelta(minutes=30)

print(f"Xatırlatma göndərilməlidir: {reminder_time}")

Konsol vasitəsilə sadə bildiriş

İlk addım — sadə bildirişlərdir. Əlbəttə ki, bunlar smartfona göndərilən push-bildirişlər qədər "dadlı" deyillər, amma başlamaq üçün yetərlidir.

Python

import time

def simple_reminder(message, delay):
    print(f"{delay} saniyədən sonra xatırlatma gələcək...")
    time.sleep(delay)
    print(f"Xatırlatma: {message}")

simple_reminder("Görüş vaxtıdır!", 10)

2. Dövri xatırlatmalar üçün schedule-dən istifadə

Sizə xatırlatma təkrarlanmalı olduqda, schedule sizin köməkçiniz olur. Müxtəlif intervalları, məsələn, gündəlik və ya həftəlik təyin edə bilərsiniz:

Python

import schedule
import time

def meeting_reminder():
    print("Xatırlatma: tezliklə görüşünüz var!")

# Hər gün 14:30-da xatırlatma
schedule.every().day.at("14:30").do(meeting_reminder)

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

3. Plyer kitabxanasından istifadə edərək vaxt üzrə bildirişlər plyer

Bildirişləri daha "real" etmək üçün plyer kitabxanasından istifadə edərək sistem bildirişləri göndərə bilərik:

Python

from plyer import notification
import time

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

# İstifadə nümunəsi
plyer_notification("Xatırlatma!", "Görüşə getmək vaxtıdır.")

notification.notify() funksiyası standart əməliyyat sistemi bildirişini göstərəcək.

4. Elektron poçtla xatırlatma

Python-da elektron poçt vasitəsilə bildirişlər göndərmək üçün smtplib modulundan istifadə olunur. Aşağıdakı nümunədə SMTP serverindən istifadə edərək, elektron poçtla xatırlatma göndərməyi quracağıq.

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 = "Tapşırıq haqqında xatırlatma"
    body = "Bu avtomatik xatırlatmadır: bu gün öz tapşırığınızı tamamlamağı unutmayın."

    # Mesajı yaradırıq
    msg = MIMEText(body)
    msg["Subject"] = subject
    msg["From"] = sender
    msg["To"] = receiver

    # SMTP serverinə qoşuluruq və məktubu göndəririk
    with smtplib.SMTP("smtp.example.com", 587) as server:
        server.starttls()
        server.login(sender, "your_password")
        server.sendmail(sender, receiver, msg.as_string())
    
    print("Elektron poçt vasitəsilə xatırlatma göndərildi.")

# Xatırlatmanın hər gün səhər saat 8:30-da göndərilməsini planlaşdırırıq
schedule.every().day.at("08:30").do(send_email_reminder)

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

Burada send_email_reminder() funksiyası elektron poçt vasitəsilə bildiriş göndərir. Göndərənin ünvanını, alıcının ünvanını və SMTP serverini konfiqurasiya edin. Bu metod email ilə bildirişlərin göndərilməsini asanlıqla avtomatlaşdırmağa imkan verir.

5. Telegram vasitəsilə xatırlatma

Telegram vasitəsilə xatırlatma göndərmək üçün onun API-sindən istifadə etmək olar. Bu nümunədə requests-dən istifadə edərək Telegram-çata bildiriş göndəririk.

Quraşdırma:

  1. BotFather vasitəsilə Telegram-da bot yaradın və API_TOKEN əldə edin.
  2. Botunuza mesaj göndərərək və API vasitəsilə chat ID-nizi əldə edərək CHAT_ID-nizi tapın.
Python

import requests
import schedule
import time

def send_telegram_reminder():
    api_token = "YOUR_API_TOKEN"
    chat_id = "YOUR_CHAT_ID"
    message = "Xatırlatma: bu gün sizin vacib bir tapşırığınız var!"

    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("Telegram vasitəsilə xatırlatma göndərildi.")
    else:
        print("Telegram-a xatırlatma göndərməkdə xəta baş verdi.")

# Xatırlatma hər gün səhər saat 9:00-da göndərilsin
schedule.every().day.at("09:00").do(send_telegram_reminder)

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

İndi hər gün səhər saat 9:00-da bot təyin olunan Telegram-çata bildiriş göndərəcək.

6. Bildirişləri sazlama ilə bağlı əlavə tövsiyələr

  1. Qəza hallarını emal etmək: Bildirişlərin göndərilmə prosesində səhvləri emal etməyi əlavə edin, məsələn, email serveri və ya Telegram ilə bağlantını yoxlayın.
  2. Loglama: Xatırlatmaların hadisələrini qeyd etmək üçün logging kitabxanasından istifadə edin. Bu, xatırlatmaların həqiqətən nə zaman göndərildiyini izləməyə kömək edəcək.
  3. Parametrlərin çevikliyi: Əgər xatırlatmaları layihədə istifadə etməyi planlaşdırırsınızsa, vaxtın və bildiriş üsullarının dinamik olaraq qurulması üçün funksiya yaradın ki, parametrləri dəyişmək mümkün olsun.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION