Вы же везде текст брали через
event.object.text
Почему для вики делаете
event.text
А вообще, у вас в принципе логика работы неправильная.
Во-первых, не нужно проверять тип ивента, если "вики" есть в тексте.
Во-вторых, таким методом не обработаете запрос поисковой.
Советую сделать лучше на примере одного сообщения, например,
/вики ТУТ ПОИСКОВОЙ ЗАПРОС.
Будет примерно так, плюс лучше проверить вики на вхождение в сообщение, чем вхождение сообщения в вики.
while True:
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if event.object.peer_id != event.object.from_id:
if event.object.text.lower() == "привет":
vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "Привет! Я бот беседы. Я умею играть(команда 'Игра'), смотреть информацию с Википедии(в стадии разработки). Остально тоже в стадии разработки.",
"random_id": 0})
if event.object.text.lower() == "игра":
vk.method("messages.send", {"peer_id": event.object.peer_id, "message": "Давай сыграем в игру 'Камень, ножницы, бумага'. Напиши свой ход и я его сделаю",
"random_id": 0})
if event.object.text.lower() == "бумага" or event.object.text.lower() == "ножницы" or event.object.text.lower() == "камень":
vk.method("messages.send", {"peer_id": event.object.peer_id, "message": random.choice(play) + ". Теперь сам думай кто выиграл, потому что разработчику лень додумывать",
"random_id": 0})
if "/вики" in event.object.text.lower():
search_query = event.object.text.lower().replace('/вики ', '')
search_result = str(wikipedia.summary(search_query))
message = "Вот что я нашёл: \n{}".format(search_result)
vk.method("messages.send", {"peer_id": event.object.peer_id, "message": message, "random_id": 0})
Если все же хотите через два сообщения, сначала вики, потом запрос, то нужно будет запоминать какой пользователь написал это, хранить где нибудь. Лучше так не заморачиваться, особенно новичкам.
И дополнение для разбирающихся: почему все шлют random_id = 0? Либа сама потом генерирует или что? Разве можно нулями все сообщения отмечать?