@kreyzi

Как редактировать сообщение в боте вк?

у меня есть код команды Пинг. мне нужно отправлять сообщение "текст для редактирования" в чат с peer_id 2000000013. получать его peer id и waited_message_id. и имея эти данные редактировать сообщения засекая сколько времяни потратиться. помогите решить проблему
@bot.on.message(text=["Пинг", "Ping"])
async def handle_ping(message: Message):
    try:
        random_id = random.getrandbits(31)
        start_time = time.time()  # Записываем время начала  
        await bot.api.messages.send(peer_id=2000000013, message="Cекунду...", random_id=random_id)
        end_time = time.time()  # Записываем время окончания
        response_time = end_time - start_time  # Рассчитываем время ответа
    except Exception as e:
        logging.error(f"An error occurred: {e}")
    try:
        messageToEdit = await message.answer("текст для редактирования")
        waitedMessageId = messageToEdit.conversation_message_id
        peerId = messageToEdit.peer_id

        print("waitedMessageId: " + str(waitedMessageId))
        print("peerId: " + str(peerId))

        await asyncio.sleep(1)

        start_time = time.time()
        await api.messages.edit(
            peer_id=peerId,
            message='Отредактированное сообщение',
            conversation_message_id=waitedMessageId
        )
        end_time = time.time()
        response_time1 = end_time - start_time
        await message.answer(f"отправка: {response_time:.2f}ms \nредактирование: {response_time1:.2f}ms")
    except Exception as e:
        logging.error(f"An error occurred: {e}")
        await message.answer("Упс, что-то пошло не так!")
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
@bara61
если я правильно понял вопрос..
<code lang="python">
@dp.message_handler(commands=['ping'])
async def handle_ping(message: types.Message):
    try:
        random_id = random.getrandbits(31)
        start_time = time.time()  # Записываем время начала
        await bot.send_message(chat_id=2000000013, text="Cекунду...", random_id=random_id)
        end_time = time.time()  # Записываем время окончания
        response_time = end_time - start_time  # Рассчитываем время ответа
    except Exception as e:
        logging.error(f"An error occurred: {e}")

    try:
        message_to_edit = await bot.send_message(chat_id=message.chat.id, text="текст для редактирования")
        waited_message_id = message_to_edit.message_id
        peer_id = message_to_edit.chat.id

        print("waitedMessageId: " + str(waited_message_id))
        print("peerId: " + str(peer_id))

        await asyncio.sleep(1)

        start_time = time.time()
        await bot.edit_message_text(chat_id=peer_id, message_id=waited_message_id, text='Отредактированное сообщение')
        end_time = time.time()
        response_time1 = end_time - start_time
        await message.answer(f"отправка: {response_time:.2f}ms \nредактирование: {response_time1:.2f}ms")
    except Exception as e:
        logging.error(f"An error occurred: {e}")
        await message.answer("Упс, что-то пошло не так!")

# Запуск бота
if __name__ == '__main__':
    asyncio.run(dp.start_polling())

</code>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы