Я пишу бота на 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()
→ Ссылка