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