Как отформатировать время перезаписи на discord.py? - PullRequest
0 голосов
/ 01 мая 2020

Я делаю команду в discord.py переписать, и она использует активность пользователя, чтобы отправить вставку о том, что они слушают на spotify. Команда работает, но продолжительность песни в часах, минутах, секундах, миллисекундах. Я пытаюсь сделать так, чтобы это были минуты и секунды, как бы я go сделал это? Вот мой код для встраивания, и я прикрепил imgur ссылку на изображение встраивания в конце:

            em.title = f'{user.display_name} is listening to Spotify'
            em.set_thumbnail(url=activity.album_cover_url)
            em.add_field(name="**Song name:**", value=activity.title, inline=False)
            em.add_field(name="**Song artist:**", value=activity.artist, inline=False)
            em.add_field(name="**Song Length:**", value=activity.duration, inline=False)
            await ctx.send(embed=em)

https://i.stack.imgur.com/S89JS.png

1 Ответ

1 голос
/ 01 мая 2020

Документы discord указывают, что длительность песни activity.duration является datetime.timedelta объектом.

Попробуйте обновить код для встраивания следующим divmod() разбить activity.duration.seconds на минуты и секунды.

em.title = f'{user.display_name} is listening to Spotify'
em.set_thumbnail(url=activity.album_cover_url)
em.add_field(name="**Song name:**", value=activity.title, inline=False)
em.add_field(name="**Song artist:**", value=activity.artist, inline=False)
m1, s1 = divmod(int(activity.duration.seconds), 60)
song_length = f'{m1}:{s1}'
em.add_field(name="**Song Length:**", value=song_length, inline=False)
await ctx.send(embed=em)

Результаты:

Spotify Embed

...