Я пишу бота на Discord.py, который выдаёт мемы, если получит какое-то слово. Как поместить отправляемое фото под функцию внутри on_message(message):
Суть в том что при получении слова, бот отправляет мем. Так вот: как поместить блок с помощью которого отпраляется фото из директории, в функцию, чтобы потом использовать её вот так:
if message.content.lower().startswith('blabla'):
send_meme1()
if message.content.lower().startswith('blablabla'):
send_meme1()
Или можно сделать как-то по другому? Мне нужно чтобы отправлялся один мем при множестве сообщений в разных формах. Думаю понятно изложил мысль. Фрагмент кода, который не работает:
@client.event
async def on_message(message):
help_message = [botver + '\n', 'Этот бот выдаёт разные мемы, если услышит определённые слова.', 'Просто общайтесь и ждите ответа.', 'Когда-нибудь добавлю в этого бота ИИ.\n', 'Разработчик: BlitPlay#2819']
if message.author == client.user:
return
# Help Operator
if message.content.lower().startswith('!help'):
await message.channel.send(" \n".join(help_message))
# Meme 1 Code Block Start
async def send_meme1():
DIR = 'memes'
DIRR = os.path.join(DIR, '1.jpg')
await message.channel.send(file=discord.File(DIRR))
if message.content.lower().startswith('q'):
send_meme1()
elif message.content.lower().startswith('Привет'):
send_meme1()
Ответы (1 шт):
Автор решения: denisnumb
→ Ссылка
Можно добавить ключевые слова в список, и затем проверять сообщение на наличие в этом списке
Вариант 1: Через цикл for
words = ['bla', 'blabla', 'blablabla']
#проверяем в цикле for
for word in words:
if message.content.lower() == word:
send_meme1()
Вариант 2: через одно условие (более правильный)
words = ['bla', 'blabla', 'blablabla']
#проверяем в цикле for
if message.content.lower() in words:
send_meme1()