diff --git a/main.py b/main.py index d54373b..ce251dd 100644 --- a/main.py +++ b/main.py @@ -156,24 +156,27 @@ async def wlc(message: types.Message) -> None: # https://stackoverflow.com/questions/67637631/create-a-background-process-using-aiogram async def messages_cleanup() -> None: - # выполняется только при запуске бота! Может быть плохо - msg_list = ( - services.session.query(Messages_to_delete).order_by(Messages_to_delete.id).all() - ) + """Зачистка пропущенных сообщений. При запуске бота проверяет, есть ли не удаленные сообщения требующие удаления, удаляет их.""" while True: - # вот тут бы проверить, что вообще есть сообещния - for m in msg_list: - if m.deletion_needed: - try: - await bot.delete_message( - chat_id=settings.CHAT_ID, message_id=m.message_id - ) - services.session.delete(m) - services.session.commit() - except MessageToDeleteNotFound: - print("Сообщение не найдено!") - services.session.delete(m) - services.session.commit() + msg_list = ( + services.session.query(Messages_to_delete) + .order_by(Messages_to_delete.id) + .all() + ) + if msg_list: + for m in msg_list: + print(m.deletion_needed()) + if m.deletion_needed(): + try: + await bot.delete_message( + chat_id=settings.CHAT_ID, message_id=m.message_id + ) + services.session.delete(m) + services.session.commit() + except MessageToDeleteNotFound: + print("Сообщение не найдено!") + services.session.delete(m) + services.session.commit() await asyncio.sleep(600) diff --git a/models.py b/models.py index 6195cd0..9472fe0 100644 --- a/models.py +++ b/models.py @@ -3,7 +3,6 @@ from sqlalchemy import Column, Integer, String, DateTime, UniqueConstraint from sqlalchemy.orm import declarative_base from datetime import datetime -# from main import Base Base = declarative_base() @@ -61,7 +60,8 @@ class Messages_to_delete(Base): Мы могли пропустить удаление из-за перезапуска. """ - if datetime.now() > self.deletion_date: + time_now = datetime.now() + if time_now > self.deletion_date: return True return False