Skip to content

test#131

Closed
KarlJ123 wants to merge 116 commits into
codebymitch:mainfrom
KarlJ123:main
Closed

test#131
KarlJ123 wants to merge 116 commits into
codebymitch:mainfrom
KarlJ123:main

Conversation

@KarlJ123

Copy link
Copy Markdown

No description provided.

Strips out the transcript generation and channel-send logic that ran
during ticket deletion, so channels are deleted without attempting to
produce or deliver a transcript file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@KarlJ123 KarlJ123 requested a review from codebymitch as a code owner June 26, 2026 16:54
Kjmodz and others added 27 commits June 26, 2026 11:09
Replaces the default in-memory session store with connect-pg-simple,
using the bot's existing PostgreSQL pool. Falls back to memory store
if the pool isn't available (e.g. degraded mode).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use a separate connection string for connect-pg-simple instead of
sharing the bot's pool, which caused "cannot use pool after end" errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Memory store is sufficient for a single Railway instance.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Matches the reference design: deep dark background, red/maroon accents,
pill-shaped tab navigation on guild config page, uppercase form labels,
stat cards, and progress bar styles.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Leveling: enable/disable, XP range, cooldown, multiplier, level-up channel & message
- Birthdays: announcement channel and birthday role
- Verification: enable/disable, channel, role, message, button text, auto-verify settings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New /dashboard/guild/:id/applications page to view, approve, and deny applications
- Approve/deny modal with reason field; DMs applicant on decision and assigns role on approval
- Filter applications by status (pending/approved/denied) and application type
- API endpoints: GET /applications, GET /application-roles, POST /applications/:id/review
- Navigation links in guild.html sidebar to switch between Config and Applications

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When an application is approved or denied via the web dashboard,
post (or update the existing) log embed in the configured applications
log channel with the decision, reason, reviewer, and applicant details.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
handleApplicationReviewModal was reading 'reason' but the modal sets
the field custom ID to 'review_reason', causing a crash on every review.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Initializes discord-player with DefaultExtractors on bot startup.
Adds 10 slash commands in the Music category:

- /play <query>     — search & play from YouTube/Spotify/SoundCloud, with autocomplete
- /skip             — skip current track
- /stop             — stop and clear queue
- /pause            — pause playback
- /resume           — resume paused playback
- /queue [page]     — show paginated queue
- /nowplaying       — current track with progress bar
- /volume <1-100>   — set volume
- /shuffle          — shuffle the queue
- /loop <mode>      — off / track / queue / autoplay repeat modes
- /disconnect       — leave voice channel and clear queue

Also adds opusscript for opus encoding support.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
DefaultExtractors from the CJS package resolved to undefined in ESM,
causing zero extractors to register. loadDefault() is built into
discord-player and requires no separate import.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
YoutubeExtractor was loading but crashing immediately because no
YouTube library was installed. @distube/ytdl-core is the maintained
fork that discord-player's extractor detects automatically.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ytdl-core forks break frequently when YouTube rotates their player
scripts. play-dl uses a different extraction method that is more
resilient to YouTube's anti-bot changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
URLs with start_radio=1 or RD* playlist IDs are YouTube Mixes which
the extractor cannot resolve. Strip those params to get a plain video URL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
play-dl was being blocked by YouTube bot detection on Railway's IP.
youtube-ext is the first-priority library for discord-player's extractor.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ypass

Railway's IP gets blocked by YouTube. Register YoutubeExtractor separately
so we can pass cookies from YOUTUBE_COOKIE env var to authenticate requests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces youtube-ext (which fails to parse YouTube's obfuscated player JS)
with YoutubeiExtractor which uses YouTube's internal Innertube API directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
discord-player-youtubei requires youtube-dl-exec (yt-dlp wrapper) and
ffmpeg for audio transcoding. Install both system packages in the image.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes all 11 Music commands, discord-player dependencies, and player
initialization code. Reverts Dockerfile to original state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

3 participants