Vkbottle: Как я могу изменить начальное сообщение в своем коде?

Здравствуйте! Сегодня я столкнулся с проблемой, и, несмотря на несколько часов попыток её решения, не смог справиться. Могли бы вы помочь мне? <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):
   
  • 10 октября 2024 г. 12:44
Ответы на вопрос 1
В вашем коде вы можете изменить начальное сообщение, редактируя строку, которая передается в параметр `message` метода `send`. Вот как это делается:

1. Найдите следующую часть вашего кода, которая отвечает за отправку сообщения:

```python
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
)
```

2. Измените текст в параметре `message`, чтобы он отражал новое начальное сообщение. Например, если вы хотите, чтобы сообщение выглядело по-другому, вы можете сделать следующее:

```python
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
)
```

3. Сохраните изменения и протестируйте код.

Теперь при запуске игры ваше новое сообщение будет отправлено пользователям. Вы можете изменять текст, добавлять эмодзи или изменять структуру сообщения в зависимости от ваших потребностей. Не забудьте протестировать новый текст, чтобы убедиться, что он хорошо воспринимается пользователями!
Похожие вопросы