Skip to content

Feat/skip votes - #8

Merged
Nxssie merged 4 commits into
mainfrom
feat/skip-votes
Jul 11, 2026
Merged

Feat/skip votes#8
Nxssie merged 4 commits into
mainfrom
feat/skip-votes

Conversation

@Nxssie

@Nxssie Nxssie commented Jul 11, 2026

Copy link
Copy Markdown
Owner

No description provided.

Nxssie added 4 commits July 5, 2026 15:47
- separate skip intent from upvotes: a popular song (many upvotes) was
  easier to skip under the old model, which is inverted
- unique (song_id, user_id) enforces one skip-vote per user per song
- playNextFromRoomInner could re-pick the currently-streaming song (still
  played=false until it finishes) and restart yt-dlp + ffmpeg from scratch
- new /skip-vote endpoint: registers a per-user skip-vote on the current
  song; auto-executes the skip once tally >= skipThreshold(roomPresence)
- the adder can skip directly (owner bypass); double-voting returns 409
- /skip and /songs now report skipVotesCount + userSkipVote instead of
  reusing the upvote tally, which was inverted (popular songs skipped easier)
- roomPresence counts Discord voice listeners (voicePresenceByRoom) plus
  web presence, so a minority web vote can't skip a song many hear in voice
- cascade-delete skip_votes on song/room/playlist/GC cleanup
- web: skip button shows N/threshold, a check once voted, owner skips
  directly; pendingSongs excludes the streaming song by id, not slice(1)
- /room reports the bound room id, owner, bot status, now-playing, and a
  browser link so server members can find and join the same room
- /skip now enforces the same skip-vote gate as the web (adder bypass or
  skipThreshold votes), instead of a one-click bypass
- /stop and /reset are room-wide actions, now gated behind Manage Server
  instead of any member
@Nxssie
Nxssie merged commit d923c8b into main Jul 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant