![](/img/trans.png)
[英]writing a spotify info command for my discord bot in python using discord.py, I dont receive any error when running command
[英]How can i error handle the spotify command in discord.py?
@commands.command()
async def spotify(self, ctx, user: discord.Member = None):
if user == None:
user = ctx.author
pass
if user.activities:
for activity in user.activities:
if isinstance(activity, Spotify)== True:
embed = discord.Embed(
title=f"{user.name}'s Spotify",
description="Listening to {}".format(activity.title),
color=activity.colour)
duration = str(activity.duration)
finalduration = duration[3:7]
embed.set_thumbnail(url=activity.album_cover_url)
embed.add_field(name="Artist", value=activity.artist)
embed.add_field(name="Album", value=activity.album)
embed.add_field(name="Song Duration", value=finalduration)
embed.set_footer(text="Song started at {}".format(activity.created_at.strftime("%H:%M.%p")))
embed.url = (f"https://open.spotify.com/embed/track/{activity.track_id}")
await ctx.send(embed=embed)
这是我的 spotify 命令,虽然它工作正常,但我不知道如何错误处理它。
例如,如果用户没有在听 Spotify,我想让它发送一条消息,比如“你没有在听 Spotify”
任何帮助表示赞赏:)
首先欢迎堆栈溢出。也许尝试类似的东西
for activity in user.activities:
if activity!= spotify :
await ctx.send("You are not listening to Spotify ")
break
只需在命令末尾添加await ctx.send("You are not listening to Spotify ")
,并在if instance(activity, Spotify) == True
语句末尾添加return
语句。 一旦找到用户正在收听的内容并发送嵌入消息,它将退出,否则它将继续到最后并发送You are not listening to spotify
intents = discord.Intents().all()
client = commands.Bot(command_prefix='.', intents=intents)
@client.command(pass_context=True)
async def spotify(ctx, user: discord.Member = None):
if user == None:
user = ctx.author
pass
if user.activities:
for activity in user.activities:
if str(activity).lower() == "spotify":
embed = discord.Embed(
title=f"{user.name}'s Spotify",
description="Listening to {}".format(activity.title),
color=activity.colour)
duration = str(activity.duration)
finalduration = duration[3:7]
embed.set_thumbnail(url=activity.album_cover_url)
embed.add_field(name="Artist", value=activity.artist)
embed.add_field(name="Album", value=activity.album)
embed.add_field(name="Song Duration", value=finalduration)
embed.set_footer(text="Song started at {}".format(activity.created_at.strftime("%H:%M.%p")))
embed.url = (f"https://open.spotify.com/embed/track/{activity.track_id}")
await ctx.send(embed=embed)
return
await ctx.send("User is not doing anything")
return
注意:我在我的代码中修改了if isinstance(activity, Spotify)== True:
因为它对我不起作用,但你可以保留它,因为你说它对你有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.