Система мута с таймером для бота-модератора. Как можно реализовать?
Делаю бота-модератора на python для telegram, использую библиотеку aiogram и СУБД sqlite3. Дошёл до того, что потребовалась система мута пользователя на конкретный период времени в минутах. Решил реализовать это с помощью таймера, но подумал, что это будет не рационально. Пришёл к такой вот модели работы системы:
На sqlite3 создаётся таблица с именем mutes, она содержит в себе 3 столбца: user_id - имя пользователя, date - текущая дата, om_date - дата снятия мута.
Должно всё работать таким образом: Пользователь с правами администратора прописывает команду в чат telegram !mute с параметрами user_id и время в минутах на сколько негодяя стоит ограничить к чату (сообщения замученого пользователя будут автоматически удаляться при отправке, а спустя n сообщений его отправит в бан). Бот в свою очередь должен сформировать запись и добавить следующее в таблицу mutes:
user_id - ID негодяя
date - текущую дату
om_date - текущая дата + n-количество минут.
В самом боте создаётся условие, если текущее время равно om_date - то мут более не действителен и пользователь может продолжить общение.
Поскольку в python я не слишком силён, как и в sqlite3, пытался что-то "ковырять" своими руками, но очень быстро мой мозг начал плавиться, облазив кучу тредов на stackoverflow и хабре ничего дельного не нашёл. Если есть люди которые сталкивались с подобной системой готовые помочь с её реализацией - буду благодарен, также если моя модель этой системы на ваш взгляд слишком мудрёная и вы знаете как её упростить - милости прошу, поправляйте.
А зачем все базы данных, отсчеты таймеров и тд, если у restrictChatMember есть параметр until_date, который отвечает за время блокировки? При достижении времени в until_date ограничения с пользователя снимаются