refactor(pyproject.toml): reorder dependencies and add new ones for better project management
feat(tux/utils/constants.py): add new constants for gate logging and tux logs to improve logging capabilities
feat(tools.py): add new encoding methods (base64, md5, sha256, sha512) to Tools class
feat(tools.py): add new command 'encode' to encode a string to a specified format
fix(tools.py): remove '#' from color if color format is HEX to ensure correct color conversion
style(tools.py): update description of 'tools' group to 'Various tool commands' for clarity
feat: add dependabot.yml for weekly updates of GitHub Actions
chore: update Python version from 3.11 to 3.12 in .mise.toml and pyproject.toml
chore: update various dependencies in pyproject.toml to their latest versions
feat: add dependency-review.yml for automated dependency review on pull requests and weekly schedule
feat: add docker-compose.yml for setting up bot and postgres services in Docker environment
feat(mypy.ini): add new mypy.ini file for better type checking configuration
fix(schema.prisma): make created_at field in Users model nullable to handle users without creation time
feat(schema.prisma): add color field to Roles model to store role's color information
refactor(pyproject.toml): rearrange linting configuration for better readability and remove redundant mypy configuration
feat(docs): add EMBED_STANDARDS.md to establish standards for embed usage
chore(docs): remove EMBED_STANDARD.md as it's replaced by EMBED_STANDARDS.md
docs: add EMBED_USAGE.md and EVENT_STANDARDS.md to provide usage guidelines and best practices for EmbedCreator utility and event listeners
chore: remove unused __event_template__.py and base_cog.py from examples directory to clean up the codebase
build(pyproject.toml): add aioconsole and psutil to poetry dependencies for better async console handling and system monitoring
refactor(guide.py): replace custom embed creation with EmbedCreator utility
feat(ping.py): add CPU and RAM usage to bot's latency check
refactor(poll.py): replace custom embed creation with EmbedCreator utility, add TODO for future improvements
refactor(rolecount.py): replace custom embed creation with EmbedCreator utility, improve choice names for clarity
refactor(controllers.py): move DatabaseController class to top for better readability
style(main.py): remove unnecessary newline
feat(constants.py): add POLL color and icon to constants
feat(embeds.py): add method to create poll embeds with specific color and icon
fix(cog_loader.py): add exception handling to cog loading process to prevent crashes due to faulty cogs
feat(main.py): add shutdown process to handle bot termination gracefully and prevent data loss
refactor(main.py): remove console task from bot ready event to improve startup speed
feat(main.py): add KeyboardInterrupt handling to allow graceful shutdown on manual termination
refactor(console.py): replace ThreadPoolExecutor with aioconsole.ainput for non-blocking input
feat(console.py): add shutdown_bot method to initiate bot shutdown from console
fix(console.py): handle ValueError when channel_id is not an integer in send_message method
fix(console.py): handle discord.HTTPException when sending message fails in send_message method
refactor(console.py): use dictionary.get method to fetch command function to avoid KeyError
refactor(sentry.py): remove unused opentelemetry and aiohttp integrations to simplify code and improve performance
fix(sentry.py): remove unused variables 'instrumenter' and 'provider' to clean up code and improve readability
feat(settings.ini): add example ini file for abstracting permissions
feat(warn.py): add warn command to warn users for moderation purposes
refactor(ban.py, kick.py, unban.py): move default reason to function call for better readability
chore(pyproject.toml): remove black configuration as it's no longer needed
fix(pyproject.toml): update sentry-sdk version and extras from httpx to opentelemetry
refactor(pyproject.toml): update linting configuration and ignore rules
refactor(tux/*): rename Constants alias from C to CONST for better readability
refactor(tux/database/models.py): improve function parameters naming for clarity
feat(tux/main.py): integrate opentelemetry for better tracing and monitoring
refactor(tux/utils/_utils.py): improve is_convertible_to_type function readability
refactor(constants.py): change all constant keys to uppercase for better readability and consistency
refactor(constants.py): rename class instance from 'C' to 'CONST' for better clarity and understanding
feat(constants.py): change import statement and usage examples to reflect the new class instance name 'CONST'
refactor(ban.py): simplify ban command, add role checks, improve logging and error handling
refactor(kick.py): simplify kick command, add role checks, improve logging and error handling
refactor(slowmode.py): simplify slowmode command, add role checks, improve logging and error handling
refactor(unban.py): rename class 'unban' to 'Unban' for better code readability
feat(unban.py): add role check to unban command to restrict access to certain roles
refactor(unban.py): simplify unban logic by using discord.utils.get and discord.utils.find
fix(unban.py): handle discord.HTTPException for better error handling
refactor(unban.py): extract embed creation and error message sending to separate methods for better code organization
Pyright type checking has been set to basic for now.
The pre-commit hooks for `ruff-pre-commit` and `pyright-python` have been updated to their latest versions for code quality improvements. The `pre-commit-config` and `pyproject.toml` files were modified to reflect these changes.
Also, the error handler has been completely rewritten in a more flexible and scalable manner, addressing various error scenarios in a cleaner and clearer way. Individual error handling methods for common cases are now in place, making it easier to extend with more exception types in the future.
Removed some unused references to the old error handler in the main application file, simplifying the logic there. The `pyright` type checking configuration in `pyproject.toml` was also adjusted for less strict checking, better suited to our current project requirements.
Lastly, the lockfile `poetry.lock` was updated and unnecessarily tagged "dev" packages were removed.
In the wake of these changes, be mindful that the behaviour of error prompts to the user and of type checks may slightly differ.
Additional notes include punctuation and formatting adjustments to improve readability throughout the files changed.