Исправления зависания 2

This commit is contained in:
2025-10-19 19:08:52 +03:00
parent 4a2aa00eb7
commit de1c82c267
3 changed files with 35 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
## changed at Sun Oct 19 17:30:33 MSK 2025
#Sun Oct 19 17:30:33 MSK 2025
## changed at Sun Oct 19 18:59:08 MSK 2025
#Sun Oct 19 18:59:08 MSK 2025
com.gigaide.elements.ext.marker.solution.BeanMarkedPsi.shouldMark=true
com.gigaide.elements.ext.marker.solution.ConfigMarkedPsi.shouldMark=true
com.gigaide.elements.ext.marker.solution.DataMarkedPsi.shouldMark=true

View File

@@ -202,13 +202,17 @@ def register_handlers(bot: AsyncTeleBot):
)
logger.info(f"[KARMA] Уведомление отправлено успешно, message_id={sent_message.message_id}")
# Удаляем уведомление через 10 секунд
await asyncio.sleep(10)
try:
await bot.delete_message(chat_id, sent_message.message_id)
logger.info(f"[KARMA] Уведомление удалено")
except Exception as e:
logger.error(f"Не удалось удалить уведомление о карме: {e}")
# Удаляем уведомление через 10 секунд В ФОНЕ (не блокируя обработку других реакций)
async def delete_notification():
try:
await asyncio.sleep(10)
await bot.delete_message(chat_id, sent_message.message_id)
logger.info(f"[KARMA] Уведомление удалено")
except Exception as e:
logger.error(f"Не удалось удалить уведомление о карме: {e}")
# Запускаем удаление в фоне
asyncio.create_task(delete_notification())
except Exception as e:
logger.error(f"Ошибка отправки уведомления о карме: {e}", exc_info=True)
@@ -293,12 +297,16 @@ def register_handlers(bot: AsyncTeleBot):
logger.info(f"Пользователь {from_user.id} поблагодарил {to_user.id}, карма: {new_karma}")
# Удаляем уведомление через 25 секунд
await asyncio.sleep(25)
try:
await bot.delete_message(chat_id, sent_message.message_id)
except Exception as e:
logger.error(f"Не удалось удалить уведомление о карме: {e}")
# Удаляем уведомление через 25 секунд В ФОНЕ
async def delete_thank_notification():
try:
await asyncio.sleep(25)
await bot.delete_message(chat_id, sent_message.message_id)
except Exception as e:
logger.error(f"Не удалось удалить уведомление о карме: {e}")
# Запускаем удаление в фоне
asyncio.create_task(delete_thank_notification())
except Exception as e:
logger.error(f"Ошибка при обработке благодарности: {e}", exc_info=True)

View File

@@ -8,14 +8,21 @@ from config import COMMAND_MESSAGES
# Получаем логгер для текущего модуля
logger = logging.getLogger(__name__)
# Удаляет определённое количество сообщения
# Удаляет определённое количество сообщения В ФОНЕ (не блокирует обработку других событий)
async def delete_messages(bot: AsyncTeleBot, message: Message, time_sleep: int, number_message: int):
await asyncio.sleep(time_sleep)
for i in range(number_message):
async def _delete_task():
try:
await bot.delete_message(message.chat.id, message.message_id+i)
await asyncio.sleep(time_sleep)
for i in range(number_message):
try:
await bot.delete_message(message.chat.id, message.message_id+i)
except Exception as e:
logger.debug(f"Не удалось удалить сообщение {message.message_id+i}: {e}")
except Exception as e:
logger.debug(f"Не удалось удалить сообщение {message.message_id+i}: {e}")
logger.error(f"Ошибка в задаче удаления сообщений: {e}")
# Запускаем удаление в фоне
asyncio.create_task(_delete_task())
# Проверяет, является ли отправитель администратором
async def check_admin_status(bot: AsyncTeleBot, message: Message, check_restrict_rights: bool = True):