1. Xatırlatma mexanizmlərinin həyata keçirilməsi
datetime və timedelta 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:
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.
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:
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:
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.
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:
- BotFather vasitəsilə Telegram-da bot yaradın və
API_TOKENəldə edin. - Botunuza mesaj göndərərək və API vasitəsilə chat ID-nizi əldə edərək
CHAT_ID-nizi tapın.
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
- 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.
- Loglama: Xatırlatmaların hadisələrini qeyd etmək üçün
loggingkitabxanası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. - 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.
GO TO FULL VERSION