Не работает код с отправкой уведомлений

import os
import getpass
import datetime
import time  # Для задержки
from win11toast import toast

# Получаем имя пользователя
username = getpass.getuser()

# Определяем путь к папке "Документы"
path = f'C:\\Users\\{username}\\Documents\\'

# Указываем путь для файла
file_path = os.path.join(path, "selection_result.txt")

# Определяем конечное время
end_time = datetime.datetime.combine(datetime.date.today(), datetime.time(23, 8))

# Флаг для проверки, был ли отправлен уведомление
notification_sent = False

# Начинаем цикл
while True:
    # Определяем текущее время
    current_time = datetime.datetime.now()

    # Если текущее время больше или равно конечному времени, отправляем уведомление сразу, но только один раз
    if current_time >= end_time and not notification_sent:
        result = toast(
            "Привет!",
            "Что сегодня будем делать?",
            selection=["Смотреть уроки", "Играть", "Отдыхать", "Программировать", "Дизайнить", "Другое"],
            duration='long',
            button="Подтвердить"
        )

        # Проверяем, что пользователь сделал выбор и сохраняем результат
        if result and "user_input" in result and "selection" in result["user_input"]:
            selection = result["user_input"]["selection"]
            if selection:  # Если выбор сделан
                # Проверяем, существует ли файл и не пуст ли он
                if not os.path.exists(file_path) or os.path.getsize(file_path) == 0:
                    # Файл не существует или пуст, создаем его и записываем данные
                    with open(file_path, "w") as file:
                        file.write(f"{current_time.date()}: {selection}\n")
                else:
                    # Файл существует и не пуст, добавляем информацию
                    with open(file_path, "a") as file:
                        file.write(f"{current_time.date()}: {selection}\n")

        # Отметим, что уведомление было отправлено
        notification_sent = True

    # Если текущее время еще не прошло, продолжаем ожидание
    elif current_time < end_time:
        time.sleep(1)  # Задержка в 1 секунду, чтобы не перегружать процессор
    else:
        # Если время прошло, а уведомление не было отправлено (например, программа запущена после времени),
        # отправляем уведомление только один раз.
        if not notification_sent:
            result = toast(
                "Привет!",
                "Что сегодня будем делать?",
                selection=["Смотреть уроки", "Играть", "Отдыхать", "Программировать", "Дизайнить", "Другое"],
                duration='long',
                button="Подтвердить"
            )

            # Проверяем, что пользователь сделал выбор и сохраняем результат
            if result and "user_input" in result and "selection" in result["user_input"]:
                selection = result["user_input"]["selection"]
                if selection:  # Если выбор сделан
                    # Проверяем, существует ли файл и не пуст ли он
                    if not os.path.exists(file_path) or os.path.getsize(file_path) == 0:
                        # Файл не существует или пуст, создаем его и записываем данные
                        with open(file_path, "w") as file:
                            file.write(f"{current_time.date()}: {selection}\n")
                    else:
                        # Файл существует и не пуст, добавляем информацию
                        with open(file_path, "a") as file:
                            file.write(f"{current_time.date()}: {selection}\n")

            # Отметим, что уведомление было отправлено
            notification_sent = True

Ответы (0 шт):