Для того чтобы определить, кто отправил сообщение в чате ВКонтакте, можно воспользоваться методом messages.getConversationMembers из VK API. Этот метод возвращает список участников беседы, и для каждого участника указывается его роль в беседе.
Для того чтобы остановить работу скрипта в случае, если в чате начинает отвечать менеджер, можно воспользоваться следующим подходом:
При запуске скрипта получить список участников беседы с помощью метода messages.getConversationMembers.
Найти в списке участников беседы того, кто является менеджером (обычно менеджеры имеют роль "администратор" или "модератор").
Когда бот получает сообщение в чате, проверить, кто отправил это сообщение, с помощью метода messages.getById.
Если отправитель сообщения является менеджером, то остановить работу скрипта, например, выбросив исключение или просто выйдя из функции, которая выполняет скрипт заказа.
Пример кода, который может реализовать этот подход, может выглядеть так:
import vkbottle
from vkbottle.bot import Bot, Message
from vkbottle.api import API
from vkbottle.types import ConversationMemberRoleType
bot = Bot(token="YOUR_TOKEN")
api = API(token="YOUR_TOKEN")
# Получаем информацию о беседе и её участниках
conversation_id = YOUR_CONVERSATION_ID
members = api.messages.getConversationMembers(peer_id=conversation_id).items
# Ищем менеджера в списке участников беседы
manager = next((m for m in members if m.member_id == YOUR_MANAGER_ID and m.role in [ConversationMemberRoleType.MODERATOR, ConversationMemberRoleType.ADMIN]), None)
@bot.on.message()
async def handle_message(message: Message):
# Получаем информацию о отправителе сообщения
sender_info = api.messages.getById(message_ids=[message.id]).items[0].from_id
if sender_info == YOUR_MANAGER_ID:
# Остановить скрипт, если отправитель сообщения является менеджером
return
else:
# Выполнять скрипт заказа
...
В этом примере YOUR_CONVERSATION_ID - это идентификатор беседы, в которой работает бот, YOUR_MANAGER_ID - идентификатор пользователя, который является менеджером, и handle_message - это функция, которая обрабатывает входящие сообщения и выполняет скрипт заказа.