Здравствуйте! Сегодня я столкнулся с проблемой, и, несмотря на несколько часов попыток её решения, не смог справиться. Могли бы вы помочь мне? <br/> Вот мой код: <br/> <pre><code class="python">async def start_game(message: Message, peer_id: int):
game_id = random.randint(1, 100000)
stake = random.choice(STAKES)
keyboard = create_game_keyboard(game_id)
try:
sent_message = await bot.api.messages.send(
peer_id=peer_id,
message=(
" Набор в игру!\n\n"
"Нажмите на кнопку ниже, чтобы присоединиться!"
),
keyboard=keyboard,
disable_mentions=1,
random_id=game_id,
attachment=photo
)
# Сохранение игры в словарь
games[peer_id] = {
"players": [],
"stake": stake,
"game_id": game_id,
"keyboard": keyboard,
"timeout_task": asyncio.create_task(game_timeout(peer_id, game_id)),
}
# Сохранение данных об игре в MongoDB
game_data = {
"peer_id": peer_id,
"game_id": game_id,
"stake": stake,
"players": [],
"start_time": datetime.utcnow(),
"status": "ongoing"
}
await transactions_collection.insert_one(game_data)
logger.info(f"Игра начата для {peer_id}, ID сообщения: {game_id}")
except Exception as e:
logger.error(f"Ошибка при отправке сообщения для {peer_id}: {e}")</code></pre> <br/> <br/> Я пытался внести изменения, чтобы обрабатывать ситуацию, когда игра остаётся без пользователей некоторое время: <br/> <pre><code class="python"># Функция для обработки таймаута игры
async def game_timeout(peer_id: int, game_id: int):