forked from Muzifs/LGBot
Исправления зависания 2
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
## changed at Sun Oct 19 17:30:33 MSK 2025
|
## changed at Sun Oct 19 18:59:08 MSK 2025
|
||||||
#Sun Oct 19 17:30:33 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.BeanMarkedPsi.shouldMark=true
|
||||||
com.gigaide.elements.ext.marker.solution.ConfigMarkedPsi.shouldMark=true
|
com.gigaide.elements.ext.marker.solution.ConfigMarkedPsi.shouldMark=true
|
||||||
com.gigaide.elements.ext.marker.solution.DataMarkedPsi.shouldMark=true
|
com.gigaide.elements.ext.marker.solution.DataMarkedPsi.shouldMark=true
|
||||||
|
@@ -202,13 +202,17 @@ def register_handlers(bot: AsyncTeleBot):
|
|||||||
)
|
)
|
||||||
logger.info(f"[KARMA] Уведомление отправлено успешно, message_id={sent_message.message_id}")
|
logger.info(f"[KARMA] Уведомление отправлено успешно, message_id={sent_message.message_id}")
|
||||||
|
|
||||||
# Удаляем уведомление через 10 секунд
|
# Удаляем уведомление через 10 секунд В ФОНЕ (не блокируя обработку других реакций)
|
||||||
await asyncio.sleep(10)
|
async def delete_notification():
|
||||||
try:
|
try:
|
||||||
await bot.delete_message(chat_id, sent_message.message_id)
|
await asyncio.sleep(10)
|
||||||
logger.info(f"[KARMA] Уведомление удалено")
|
await bot.delete_message(chat_id, sent_message.message_id)
|
||||||
except Exception as e:
|
logger.info(f"[KARMA] Уведомление удалено")
|
||||||
logger.error(f"Не удалось удалить уведомление о карме: {e}")
|
except Exception as e:
|
||||||
|
logger.error(f"Не удалось удалить уведомление о карме: {e}")
|
||||||
|
|
||||||
|
# Запускаем удаление в фоне
|
||||||
|
asyncio.create_task(delete_notification())
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Ошибка отправки уведомления о карме: {e}", exc_info=True)
|
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}")
|
logger.info(f"Пользователь {from_user.id} поблагодарил {to_user.id}, карма: {new_karma}")
|
||||||
|
|
||||||
# Удаляем уведомление через 25 секунд
|
# Удаляем уведомление через 25 секунд В ФОНЕ
|
||||||
await asyncio.sleep(25)
|
async def delete_thank_notification():
|
||||||
try:
|
try:
|
||||||
await bot.delete_message(chat_id, sent_message.message_id)
|
await asyncio.sleep(25)
|
||||||
except Exception as e:
|
await bot.delete_message(chat_id, sent_message.message_id)
|
||||||
logger.error(f"Не удалось удалить уведомление о карме: {e}")
|
except Exception as e:
|
||||||
|
logger.error(f"Не удалось удалить уведомление о карме: {e}")
|
||||||
|
|
||||||
|
# Запускаем удаление в фоне
|
||||||
|
asyncio.create_task(delete_thank_notification())
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Ошибка при обработке благодарности: {e}", exc_info=True)
|
logger.error(f"Ошибка при обработке благодарности: {e}", exc_info=True)
|
17
src/utils.py
17
src/utils.py
@@ -8,14 +8,21 @@ from config import COMMAND_MESSAGES
|
|||||||
# Получаем логгер для текущего модуля
|
# Получаем логгер для текущего модуля
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
# Удаляет определённое количество сообщения
|
# Удаляет определённое количество сообщения В ФОНЕ (не блокирует обработку других событий)
|
||||||
async def delete_messages(bot: AsyncTeleBot, message: Message, time_sleep: int, number_message: int):
|
async def delete_messages(bot: AsyncTeleBot, message: Message, time_sleep: int, number_message: int):
|
||||||
await asyncio.sleep(time_sleep)
|
async def _delete_task():
|
||||||
for i in range(number_message):
|
|
||||||
try:
|
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:
|
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):
|
async def check_admin_status(bot: AsyncTeleBot, message: Message, check_restrict_rights: bool = True):
|
||||||
|
Reference in New Issue
Block a user