/
Esgalnor
/
TG_Bot
Обзор
Документация
Войти
/
Esgalnor
/
TG_Bot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
patch
database/clear_n_remind.py
103 строки
3 KB
Esgalnor
upload files
18 авг 2025, 17:24
18 авг 2025, 17:24
82ee7ff
Код
Авторство
О чём код?
import time import datetime from loader import bot from database.user_pw import users from config.config import WORK_TIME_STOP, WORK_TIME_START, MASTER_ID from database.calendar_pw import my_calendar from utils.json_funcs import to_obj from typing import List from handlers.master_hanlers.show_recs import get_rec TIME_SLEEP = 3500 def clear(user_on_rec: List[int]): for user in user_on_rec: users.del_rec(user) def remind(user_on_rec): for user in user_on_rec: if user > 0: data = to_obj(users.get_curr_rec(user)) date_time = list(data.keys())[0].split() date_rec, time_rec = date_time # если понадобиться добавить сумму """sum = 0 for price in to_obj(list(data.values())[0]).values(): sum += price""" bot.send_message( user, 'Добрый день. Напоминаем, что Вы записаны на эпиляцию в студию красоты "Николь"\n' 'Дата {}, время {}.'.format(date_rec, time_rec) ) def remind_for_master(date): data = get_rec(date) bot.send_message( MASTER_ID, 'Ежевечерняя напоминалочка. Записи на завтра:\n{}'.format(data) ) def get_users(date): users_on_rec = list(map(int, my_calendar.get_users_on_rec(date).split())) return users_on_rec def choice_func(func_dict: dict, func_name: str, *args): date, *data = args user_list = get_users(date) func_dict[func_name](user_list) def clear_n_remind(): # переприсваивание для тестов # WORK_TIME_STOP = 14 # WORK_TIME_START = 14 clear_is_done = False remind_is_done = False while True: time.sleep(TIME_SLEEP) date = datetime.date.today() delta = datetime.timedelta(days=1) cur_hour = datetime.datetime.now().time().hour if cur_hour == WORK_TIME_START: date_clear = date - delta date_clear = date_clear.strftime('%d.%m.%Y') if not clear_is_done: user_list = get_users(date_clear) clear(user_list) clear_is_done = True else: clear_is_done = False if cur_hour == WORK_TIME_STOP: date_remind = date + delta date_remind = date_remind.strftime('%d.%m.%Y') if not remind_is_done: user_list = get_users(date_remind) remind(user_list) remind_for_master(date_remind) remind_is_done = True else: remind_is_done = False if __name__ == '__main__': # clear() # remind() # clear_n_remind() ...