Browse Source

Fix. Исправил удаление сообщений при старте.

master
Дмитрий 3 years ago
parent
commit
4ff14861dc
  1. 37
      main.py
  2. 4
      models.py

37
main.py

@ -156,24 +156,27 @@ async def wlc(message: types.Message) -> None:
# https://stackoverflow.com/questions/67637631/create-a-background-process-using-aiogram # https://stackoverflow.com/questions/67637631/create-a-background-process-using-aiogram
async def messages_cleanup() -> None: async def messages_cleanup() -> None:
# выполняется только при запуске бота! Может быть плохо """Зачистка пропущенных сообщений. При запуске бота проверяет, есть ли не удаленные сообщения требующие удаления, удаляет их."""
msg_list = (
services.session.query(Messages_to_delete).order_by(Messages_to_delete.id).all()
)
while True: while True:
# вот тут бы проверить, что вообще есть сообещния msg_list = (
for m in msg_list: services.session.query(Messages_to_delete)
if m.deletion_needed: .order_by(Messages_to_delete.id)
try: .all()
await bot.delete_message( )
chat_id=settings.CHAT_ID, message_id=m.message_id if msg_list:
) for m in msg_list:
services.session.delete(m) print(m.deletion_needed())
services.session.commit() if m.deletion_needed():
except MessageToDeleteNotFound: try:
print("Сообщение не найдено!") await bot.delete_message(
services.session.delete(m) chat_id=settings.CHAT_ID, message_id=m.message_id
services.session.commit() )
services.session.delete(m)
services.session.commit()
except MessageToDeleteNotFound:
print("Сообщение не найдено!")
services.session.delete(m)
services.session.commit()
await asyncio.sleep(600) await asyncio.sleep(600)

4
models.py

@ -3,7 +3,6 @@ from sqlalchemy import Column, Integer, String, DateTime, UniqueConstraint
from sqlalchemy.orm import declarative_base from sqlalchemy.orm import declarative_base
from datetime import datetime from datetime import datetime
# from main import Base
Base = declarative_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 True
return False return False

Loading…
Cancel
Save