Answer the question
In order to leave comments, you need to log in
Reaction to the "bad message". How to setup?
Hello, there is a small problem. I want to make a reaction to the mat. If the user writes " mate ", then the bot answers him. But, if the user writes "any text mat ", then the bot simply ignores this message. Line 85-86: elif response in rar: #0
send_message(vk, 'user_id', event.user_id, message='Don't say that, you might get banned!')
import sys
sys.path.insert(0, '../')
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
import vk_api
from datetime import datetime
import random
import os
import time
# DEFAULT, NEGATIVE, POSITIVE, PRIMARY
# API-ключ созданный ранее
token = "СЕКРЕТ"
# Авторизуемся как сообщество
vk = vk_api.VkApi(token=token)
longpoll = VkLongPoll(vk)
#список
rar = ["мат", "мат2", "мат3"]
def create_keyboard(response):
keyboard = VkKeyboard(one_time=False)
if response == 'помощь':
keyboard.add_button('Привет', color=VkKeyboardColor.POSITIVE)
keyboard.add_button('Кто я?', color=VkKeyboardColor.DEFAULT)
keyboard.add_button('Как дела?', color=VkKeyboardColor.DEFAULT)
keyboard.add_line()
keyboard.add_button('Завещание', color=VkKeyboardColor.PRIMARY)
keyboard.add_button('Конфуций', color=VkKeyboardColor.PRIMARY)
keyboard.add_button('Тест', color=VkKeyboardColor.PRIMARY)
keyboard.add_line() # Переход на вторую строку
keyboard.add_button('Закрыть', color=VkKeyboardColor.NEGATIVE)
keyboard.add_line()
keyboard.add_button('Iphone 10 XS MAX', color=VkKeyboardColor.PRIMARY)
keyboard.add_button('Пока', color=VkKeyboardColor.NEGATIVE)
keyboard.add_button('Взлом пентагона', color=VkKeyboardColor.PRIMARY)
keyboard.add_line()
keyboard.add_button('Сотрудничество', color=VkKeyboardColor.POSITIVE)
keyboard.add_button('Помощь', color=VkKeyboardColor.POSITIVE)
keyboard.add_button('Состав', color=VkKeyboardColor.POSITIVE)
elif response == 'привет':
keyboard.add_button('Помощь', color=VkKeyboardColor.POSITIVE)
elif response == 'тест':
keyboard.add_button('Я человек', color=VkKeyboardColor.POSITIVE)
keyboard.add_button('Я пришелец', color=VkKeyboardColor.POSITIVE)
keyboard.add_button('Я инопришеленец', color=VkKeyboardColor.POSITIVE)
elif response == 'закрыть':
print('закрываем клавиатуру')
return keyboard.get_empty_keyboard()
keyboard = keyboard.get_keyboard()
return keyboard
def send_message(vk, id_type, id, message=None, keyboard=None, rar=None):
vk.method('messages.send',{id_type: id, 'message': message, 'random_id': random.randint(-2147483648, +2147483648), 'keyboard': keyboard, 'rar' : rar})
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
print('Сообщение пришло в: ' + str(datetime.strftime(datetime.now(), "%H:%M:%S")))
print('Текст сообщения: ' + str(event.text))
print('Сообщение от пользователя: ' + str(event.user_id))
response = event.text.lower()
keyboard = create_keyboard(response)
if event.from_user and not event.from_me:
if response == "начать": #НАЧАТЬ
send_message(vk, 'user_id', event.user_id, message= 'Приветствую тебя! Напиши "Помощь" чтобы узнать команды бота!')
elif response == "Беседа": #0
send_message(vk, 'user_id', event.user_id, message='Чтобы вступить туда, напиши об это @pelasiknice или @sozdatelbota')
elif response in rar: #0
send_message(vk, 'user_id', event.user_id, message='Не говори так, ведь можешь получить бан!')
elif response == "привет": #1
send_message(vk, 'user_id', event.user_id, message='Нажми на кнопку, чтобы получить список команд!',keyboard=keyboard)
elif response == "помощь": #2
send_message(vk, 'user_id', event.user_id, message= 'Список команд бота: \n \n 1)Привет - Я приветствую тебя \n 2)Помощь - список команд \n 3)Конфуций - говорю мудрую фразу \n 4)Кто я? - скажу кто ты \n 5)Как дела? - скажу как у меня дела \n 6)Состав - всё администраторы сообщества \n 7)iphone 10 xs max - Дам тебе Айфон \n 8)Тест - Задам вопросы \n 9) Сотрудничество - назову администраторов \n 10)Завещание - пусто \n 11)Пока - прощаюсь с тобой \n 12)Взлом пентагона - взломаю любую вещь \n 13)Закрыть - закрывает клавиатуру', keyboard=keyboard)
elif response == "конфуций": #3
send_message(vk, 'user_id', event.user_id, message='Делай мемы, и они попадут в эту группу!')
elif response == "кто я?": #4
send_message(vk, 'user_id', event.user_id, message='Ты человек, но это не точно❤')
elif response == "как дела?": #5
send_message(vk, 'user_id', event.user_id, message='Нормас, а у тебя вижу так себе . Напиши что-то боту, чтобы скучно не было')
elif response == "состав": #6
send_message(vk, 'user_id', event.user_id, message='Программист: @pelasiknice \n Помощник: @fl1xer339')
elif response == "iphone 10 xs max": #7
send_message(vk, 'user_id', event.user_id, message='А тебе не жирно сразу айфон?')
elif response == "тест": #8
send_message(vk, 'user_id', event.user_id, message='Кто ты? \n 1) Я человек \n 2) Я пришелец \n 3) Я инопришеленец☢',keyboard=keyboard)
elif response == "сотрудничество": #9
send_message(vk, 'user_id', event.user_id, message='Пиши им: @pelasiknice или @fl1xer339')
elif response == "завещание": #10
send_message(vk, 'user_id', event.user_id, message='А, точно. Я же никому ничего не завещал:)')
elif response == "пока": #11
send_message(vk, 'user_id', event.user_id, message='Пока:( Возвращайся поскорее!')
elif response == "взлом пентагона": # 9
send_message(vk, 'user_id', event.user_id, message='Ваша жЕпа успешно взломана')
elif response == "я человек": #Я ЧЕЛОВЕК
send_message(vk, 'user_id', event.user_id, message='Хорошо, ты нормальный. Проход открыт! (пиши команду: Помощь)')
elif response == "я пришелец": # Я ПРИШЕЛЕЦ
send_message(vk, 'user_id', event.user_id, message='Так, проход запрещён. Возвращайся назад в ☢зону 51☢! (пиши команду: Помощь)')
elif response == "я инопришеленец": # Я ПРИШЕЛЕЦ
send_message(vk, 'user_id', event.user_id, message='Стоп, кто? Кхм, думал тебя пытать. А так проходи, проходи... (пиши команду: Помощь)')
elif response=='закрыть':
send_message(vk, 'user_id', event.user_id, message='Закрываю клавиатуру',keyboard=keyboard)
Answer the question
In order to leave comments, you need to log in
You check for the occurrence of a sentence in a list of words . You need to break your text into words, and check for occurrences of each word by converting it to lowercase.
Replace with:
elif response in rar: #0
elif [word for word in response.split() if word.lower() in rar]:
elif any(word in rar for word in response.lower().split()):
elif any(word in response.lower() for word in rar):
rar = ["мат", "мат2", "мат3"]
regular expressions for you. they will rule everything out anyway)
and I would also suggest storing all events "response == "I am an alien":" in the database, gu and the answer to it is also there. and then an elementary bot, and already so much garbage. and then what)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question