Итак, я недавно создал команду для текстов песен, и она работает! Единственная проблема заключается в том, что когда я писал тарабарщину, он отправлял ошибку. Произошла ошибка: команда вызвала исключение: KeyError: 'lyrics', для которого я добавил обработчик ошибки except KeyError, но он не сработал, не знаете почему?
@commands.command()
async def lyrics(self, ctx,*, title):
url = f"https://some-random-api.ml/lyrics?title={title}"
response = requests.get(url)
json_data = json.loads(response.content)
lyrics = json_data['lyrics']
try:
if len(lyrics) > 2048:
em = discord.Embed(title=title,description = f"I wasn't able to send the lyrics for that song since it exceeds 2000 characters. However, here's the file for the lyrics!",color=0xa3a3ff)
await ctx.send(embed=em)
file = open("lyrics.txt", "w")
file.write(lyrics)
file.close()
return await ctx.send(file=discord.File("lyrics.txt"))
else:
em = discord.Embed(title=title,description=lyrics,color=0xa3a3ff)
await ctx.send(embed=em)
except KeyError:
em = discord.Embed(title="Aw Snap!",description="I wasn't able to find the lyrics of that song.",color = 0xa3a3ff)
em.set_thumbnail(url='https://cdn.discordapp.com/attachments/830818408550629407/839555682436251698/aw_snap_large.png')
await ctx.send(embed=em)
len(lyrics)
следует вызывать только в том случае, если текст песни действительно существует, поэтому его необходимо поместить внутри if lyrics: branch 06.05.2021