我正在尝试制作一个 Discord 机器人(使用 discord.py),使用在 GitHub (https://github.com/obskyr/khinsider) 上找到的程序从 khinsider 搜索和发布视频游戏配乐。
搜索的概念是:用户告诉机器人他们想要搜索某个音轨,所以他们输入游戏/系列名称,程序将所有名称放在一个列表中,然后将列表转换为一个特殊的消息,以便用户可以选择特定的配乐。
以下是搜索“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]) + "```**")
(专辑列表是我的列表,其中包含搜索的音轨名称。)
这是我的完整代码:
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只是为了搜索和下载原声带的功能)
我该如何修复它才能使其正常工作?
答案 0 :(得分:0)
您似乎正在尝试添加编号行。尝试循环访问专辑列表并连接到要发送的最终消息,如下所示:
>>> 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
变量名干扰其他名称,您可能需要更改它。