试图发出一条特殊的不和谐消息

2024-10-03 13:25:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个Discord机器人(使用Discord.py),它使用GitHub(https://github.com/obskyr/khinsider)上的程序搜索和发布来自Khinider的视频游戏配乐

搜索的概念是:用户告诉机器人他们想要搜索某个特定的配乐,因此他们键入游戏/系列名称,程序将所有名称放入列表中,并将列表转换为特殊消息,以便用户可以选择特定的配乐

以下是搜索“shin megami tensei iii”的概念示例:

该列表可以根据搜索的配乐数量进行调整,因此不一定像示例中那样有6个配乐

这是一行不起作用的代码(它返回SyntaxError:invalid syntax),我甚至不知道{}是否应该这样使用:

await message.channel.send("Liste des OSTs disponibles :\n**```\n" + for i in range(len(albumlist)): "{} - {}\n".format(i + 1, albumlist[i]) + "```**")

(albumlist是我的列表,包含搜索中的配乐名称。)

这是我的全部代码:

import discord
import khinsider

client = discord.Client()

@client.event
async def on_ready():
    await client.change_presence(status=discord.Status.dnd, activity=discord.Game(name=".hugOST | by mirai#0001"))
    print('Parfaitement connecté au bot Discord suivant: {0.user}'.format(client))

@client.event
async def on_message(message):
    def author_check(author):
        return lambda message: message.author == author

    if message.author == client.user:
        return
    if message.content.startswith('.hugOST'):
        await message.channel.send("Quelle action souhaitez-vous faire ?\n**```\n[search] Rechercher une OST\n[download] Télécharger une OST```**")
        msg = await client.wait_for("message", check=author_check(message.author))
        if msg.content == "search":
            await message.channel.send("Écrivez le nom du jeu/série que vous souhaitez télécharger.")
            msg = await client.wait_for("message", check=author_check(message.author))
            if msg.content != "":
                albumlist = khinsider.search(msg.content)
                await message.channel.send("Liste des OSTs disponibles :\n**```\n" + for i in range(len(albumlist)): "{} - {}\n".format(i + 1, albumlist[i]) + "```**")

(khinsider只提供搜索和下载配乐的功能)

我如何修复它才能使其正常工作


Tags: clientsendmessage列表forifcheckchannel
1条回答
网友
1楼 · 发布于 2024-10-03 13:25:06

看起来您正在尝试添加编号的行。尝试在相册列表上循环并连接到要发送的最终消息,如下所示:

>>> message = ""
>>> eeee = [1,2,3]
>>> for i in range(len(eeee)):
    message += f"{i} test message"

    
>>> message
'0 test message1 test message2 test message'

一旦你适应了你的需要,你可以简单地:

await message.channel.send(message)

如果message变量名干扰其他名称,则可能需要更改它

相关问题 更多 >