Как получить весь пользовательский ввод в виде строки с моим диссон-ботом после того, как они введут определенную команду? - PullRequest
0 голосов
/ 10 октября 2018

У меня бот-диск, созданный с помощью Python.Я хочу, чтобы он извлекал все, что было введено после того, как пользователь набрал команду! Loot, а затем сохранил номер, указанный в текстовом файле, на основе указанной строки / фрукта.

Например, если кто-то наберет! Loot 100 яблок200 апельсинов, 300 слив, я бы получил пользовательский ввод "100 яблок, 200 апельсинов, 300 слив" в python в виде строки.

Моя идея после получения этой строки - разбить строку на основе запятых насписок, так что список будет выглядеть как [100 яблок, 200 апельсинов, 300 слив].После этого я мог проверить, соответствует ли ключевое слово текстовому файлу и извлекает ли оно число и помещает ли оно в файл.

Я пытался

async def loot(ctx, message):
    messagelist = [x.strip() for x in message.split(',')]
    await bot.say(messagelist)

, но бот выдает только первую часть, что будет [100] в приведенном выше примере.

tldr: возьмите несколько пар пункт / число, разделенных запятыми, и поместите каждое число в другой текстовый файл, основываясь на том, соответствует ли имя элемента имени файла.

1 Ответ

0 голосов
/ 10 октября 2018

A особенность каркаса расширения команд discord.py делает это простым

@bot.command(pass_context=True)
async def loot(ctx,*,message):
    await bot.say(message)

Если вы заметили *, она говорит библиотеке помещать после нее все, что вводит пользовательв message в виде строки.

...