Skip to content

Sync dev to main... (ignore the branch name please)#56

Merged
FoxeiZ merged 17 commits intofeat/revivefrom
feat/dump
Dec 22, 2025
Merged

Sync dev to main... (ignore the branch name please)#56
FoxeiZ merged 17 commits intofeat/revivefrom
feat/dump

Conversation

@FoxeiZ
Copy link
Owner

@FoxeiZ FoxeiZ commented Dec 22, 2025

Might need to refactor the UI element, but oh well, lets see.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@FoxeiZ FoxeiZ merged commit a03751b into feat/revive Dec 22, 2025
0 of 2 checks passed
@FoxeiZ FoxeiZ deleted the feat/dump branch December 29, 2025 09:12
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.

2 participants