Sync dev to main... (ignore the branch name please)#56
Merged
FoxeiZ merged 17 commits intofeat/revivefrom Dec 22, 2025
Merged
Conversation
info embed is more UX now (i think so...) patch a bug in pomice track gen remove obsolete errors.py file that has been replace with exceptions.py bump youtube-plugin since youtube fuck around again type, type, type, i love type some logic enhance here and there
There was a problem hiding this comment.
Pull request overview
This PR represents a substantial "dev to main" sync that includes a major refactoring of the music system, configuration management improvements, and various quality-of-life enhancements. The changes migrate from TypedDict to dataclasses for configuration, update dependencies, enhance the music player with new features (vote skip, auto-disconnect, speed control), and improve code quality with better type annotations.
Key changes:
- Migration from TypedDict to dataclass-based configuration with improved type safety
- Complete music system overhaul with custom queue implementation, enhanced player features, and new commands
- Development mode configuration for selective guild syncing during testing
- Updated dependencies and stricter linting rules in pyproject.toml
Reviewed changes
Copilot reviewed 29 out of 32 changed files in this pull request and generated 31 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Updated dependencies (beautifulsoup4, jishaku, pillow, pomice, etc.) and expanded ruff linting rules for stricter code quality |
| nameless.toml | Added dev configuration section with server sync IDs for development mode |
| nameless/nameless.py | Changed command sync behavior for dev mode, updated error handling order, removed get_prefix_list method, added commented file watcher code |
| nameless/config.py | Migrated from TypedDict to dataclasses for type safety, but post_init has incorrect default_factory usage |
| nameless/custom/cache.py | Improved file handling using Path.open() and f.writelines() |
| nameless/custom/prisma.py | Added return type annotations |
| nameless/custom/init.py | Commented out all imports (unclear why) |
| nameless/custom/ui/paginated_view.py | Added return type annotations (Self) to button factory methods |
| nameless/custom/ui/modal/*.py | Migrated from Generic[V] to modern Python 3.12 generic syntax [V] |
| nameless/command/music/init.py | Massive refactor: new event handlers, command additions (voteskip, history, export, info, speed, jump, swap, move), embed function migration, improved error handling |
| nameless/command/music/player/custom_player.py | Complete rewrite with CustomQueue, auto-disconnect, track error handling, history tracking, and enhanced playback controls |
| nameless/command/music/views.py | Added loop button, improved button state management, removed ephemeral responses |
| nameless/command/music/embeds.py | Refactored EmbedGenerator class to standalone functions, improved now playing embed with progress bar |
| nameless/command/music/exceptions.py | Added InvalidParameterError base class, AutoplayPopulateError |
| nameless/command/music/vote_skip.py | New file implementing vote-based track skipping with Discord UI |
| nameless/command/music/track_selector.py | Added user_id validation to prevent unauthorized interactions |
| nameless/command/music/player_manager.py | Changed disconnect() calls to destroy() for proper cleanup |
| nameless/command/music/player/lavalink/start.py | Improved error handling, version checking, and async file operations |
| nameless/command/music/player/lavalink/bin/application.yml | Updated port (8233→18233), YouTube plugin version, added OAuth and remoteCipher config |
| nameless/command/music/player/_patchers/pomice_pool.py | New file to patch pomice Node.get_recommendations method |
| nameless/command/maimai.py | Moved MaimaiUser import to TYPE_CHECKING block |
| nameless/command/general.py | Updated to use dataclass config access, changed threads counting approach |
| nameless/command/crossover.py | Replaced list comprehension with next(), updated prefix list access |
| nameless/init.py | Made imports explicit with all |
| bootstrapper.py | Fixed potential issue with os.getenv default value |
| .vscode/settings.json | Changed from disabling language server to disabling auto-import completions |
| .vscode/launch.json | Removed console configuration entries |
Comments suppressed due to low confidence (1)
nameless/nameless.py:166
- This comment appears to contain commented-out code.
# try:
# import asyncio
# from pathlib import Path
# from watchdog.events import FileSystemEventHandler
# from watchdog.observers import Observer
# @final
# class ExtensionReloadHandler(FileSystemEventHandler):
# def __init__(self, bot: Nameless, command_path: Path):
# self.bot = bot
# self.command_path = command_path
# @override
# def on_modified(self, event):
# if event.is_directory:
# return
# file_path = Path(cast("str", event.src_path))
# if file_path.suffix != ".py":
# return
# # Check if the modified file is in the command package
# try:
# relative_path = file_path.relative_to(self.command_path)
# module_parts = list(relative_path.parts[:-1]) + [relative_path.stem]
# module_name = f"nameless.command.{'.'.join(module_parts)}"
# # Check if this extension is loaded
# if module_name in self.bot.extensions:
# asyncio.create_task(self._reload_extension(module_name))
# except ValueError:
# # File is not in command package
# pass
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Might need to refactor the UI element, but oh well, lets see.