Repository navigation
feat(bot): playback progress bar in nowplaying/songinfo embed - #1797
Conversation
📝 WalkthroughWalkthroughMusic embeds now accept optional playback progress. ChangesMusic embed playback progress
Sequence Diagram(s)sequenceDiagram
participant MusicCommand
participant GuildQueueNode
participant createProgressBar
participant buildTrackEmbed
participant interactionReply
MusicCommand->>GuildQueueNode: Read current playback position
GuildQueueNode->>createProgressBar: Create timecoded progress bar
createProgressBar-->>MusicCommand: Return progress bar or null
MusicCommand->>buildTrackEmbed: Pass progressBar option
buildTrackEmbed-->>MusicCommand: Build track embed
MusicCommand->>interactionReply: Send embed response
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
Failed to generate code suggestions for PR |
There was a problem hiding this comment.
No issues found across 4 files
Auto-approved: Adds an optional progress bar field to nowplaying/songinfo embeds using discord-player's built-in helper. Isolated change with no impact on core logic; tests pass and existing callers unaffected.
Re-trigger cubic
|
🤖 I have created a release *beep* *boop* --- <details><summary>2.35.0</summary> ## [2.35.0](v2.34.0...v2.35.0) (2026-07-13) ### Features * **bot:** /bulk-kick — proof-of-pattern for the bulk-* command family ([#1802](#1802)) ([1c11f3e](1c11f3e)) * **bot:** add lucky_bot_gateway_connected zombie-detection gauge ([#1774](#1774)) ([6cc5287](6cc5287)) * **bot:** playback progress bar in nowplaying/songinfo embed ([#1797](#1797)) ([1138b59](1138b59)) * **bot:** post server-count stats to Top.gg for listing visibility ([#1789](#1789)) ([e8ca6b9](e8ca6b9)) * **bot:** temporary support ticket channels (/ticket) ([#1803](#1803)) ([49601a1](49601a1)) * **live-notif:** youtube polling, message ttl cleanup, api backoff ([#1762](#1762)) ([a99b85a](a99b85a)) * **remind:** channel and role broadcast reminders ([#1767](#1767)) ([#1807](#1807)) ([83ade79](83ade79)) ### Bug Fixes * **backend:** artist suggestions 503 not 500 on upstream timeout ([#1787](#1787)) ([eadc20e](eadc20e)) * **bot:** guard skipReason telemetry against null prisma client ([#1773](#1773)) ([d73421e](d73421e)) * **ci:** stop auto-update workflow racing on merge push ([#1811](#1811)) ([2ddd202](2ddd202)) * **csp:** allow Cloudflare Insights beacon in script-src/connect-src ([#1788](#1788)) ([f20c4cf](f20c4cf)) * **deps:** bump eslint in lock to satisfy npm@12 ci (unblock release) ([#1809](#1809)) ([68fd0be](68fd0be)) * paginate bulk-move message fetch to respect discord api limit ([#1776](#1776)) ([5b5d2fc](5b5d2fc)) * **weekly-digest:** trigger on Sunday and add new-guides RSS section ([#1761](#1761)) ([f429fc6](f429fc6)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).



Closes #1768
What
/nowplaying(and/songinfo) embeds now show a playback progress bar with elapsed/total timecodes, so a user can tell if a track is 10% or 90% done without guessing.How
buildTrackEmbedgains an optionaloptions.progressBarparam → rendered as a non-inline Progress field only when present.songinfo.execute(the shared renderer both commands use) snapshots the position via discord-player v7's built-inqueue.node.createProgressBar({ length: 18, timecodes: true })— reusing the library helper rather than hand-rolling a bar. Returnsnullfor livestreams/no-duration tracks → field omitted.Static snapshot at command time (matches the issue's ask); no message-edit loop.
Verify
jest buildTrackEmbed nowplaying→ 39/39 pass (Progress-field present/omitted; bar threaded fromqueue.node; null-for-livestream)Other
buildTrackEmbedcallers (queued/recommended/history) are unaffected — the param is optional and onlysonginfopasses it.Summary by cubic
Adds a playback progress bar with elapsed/total timecodes to /nowplaying and /songinfo embeds so users can see how far a track has progressed. Implements #1768 as a one-time snapshot with no message update loop.
buildTrackEmbedacceptsoptions.progressBarand shows a non-inline "Progress" field when provided.discord-playerv7queue.node.createProgressBar({ length: 18, timecodes: true }); omitted for livestreams or no-duration tracks.buildTrackEmbedcallers unchanged.Written for commit 7474242. Summary will update on new commits.
Summary by CodeRabbit
/nowplayingand/songinfocommands.