#python #discord #discord.py
#python #Discord #discord.py
Вопрос:
я просто хочу сделать поиск в Google… У меня есть остальная часть кода, чтобы сделать это, я бы изменил входной тег на тег сообщения или что-то еще
@bot.command(aliases=['a'])
async def on_message(ctx, messages):
await ctx.send(messages)
что идентификатор бота делает с этим кодом
(код, которым я хотел быть)
@bot.command(aliases=['google'])
async def on_message(ctx, message):
googleinput = message
pgoogleinput = googleinput.replace(" ", " ")
await ctx.send("https://www.google.com/search?q=" pgoogleinput)
Комментарии:
1. Я думаю, что здесь необходимо указать одну вещь: ваше имя команды
on_message
, предназначено ли это? Или вы путаете команды с on_message. В общем discord.py принимает имя функции за имя вызова команды и добавляет псевдонимы.
Ответ №1:
Вы можете просто передать сообщение в качестве аргументов только для ключевых слов, благодаря этому discord.py будет анализировать все аргументы как одну строку
@bot.command(aliases=['google'])
async def on_message(ctx, *, message):
googleinput = message
pgoogleinput = googleinput.replace(" ", " ")
await ctx.send("https://www.google.com/search?q=" pgoogleinput)
Ответ №2:
вам нужно добавить *
перед аргументом, который вы хотите использовать полностью. по сути, *
собирает все позиционные аргументы в кортеже. Таким образом, код будет выглядеть:
@bot.command(aliases=['a'])
async def on_message(ctx, *, messages):
await ctx.send(messages)
Аналогично, для второго кода это будет выглядеть так:
@bot.command(aliases=['google'])
async def on_message(ctx, *, message):
googleinput = message
pgoogleinput = googleinput.replace(" ", " ")
await ctx.send("https://www.google.com/search?q=" pgoogleinput)
Они упоминаются в документации python.