Enhanced user lock/unlock feature to log the rooms a user is joined to. The list of joined rooms is fetched and included in the success message if the lock/unlock operation succeeds, providing better context for administrative actions.
Corrected the string formatting in the logging and messaging code for user lock/unlock operations. Fixed the use of incorrect quotation marks which led to syntax errors and inconsistent message formats.
This ensures that log messages and notifications are properly formatted, enhancing readability and reducing potential debugging confusion.
Extended the bot to handle multiple room IDs for block and shutdown
commands, and multiple user IDs for lock and unlock commands in a single
message. This enhancement allows for more efficient bulk operations.
Refactored `lock_user` method to support both locking and unlocking users by introducing an optional `locked` parameter. This simplifies the codebase and removes redundancy by merging the previously separate `lock_user` and `unlock_user` methods. Improves maintainability and consistency in user management operations.
Updated room block and shutdown procedures to fetch and log room names, enhancing clarity in debug logs and notifications. This involved modifying URLs and introducing additional GET requests to retrieve room metadata.
Incremented the project version from 0.1.1 to 0.1.2 to reflect recent updates and improvements. This minor version bump helps ensure clarity in tracking changes and maintaining semantic versioning integrity.
Introduced `!roomba lock <user_id>` and `!roomba unlock <user_id>` commands to manage user access. These commands enable locking and unlocking user accounts via Matrix bot, enhancing moderation capabilities. Updated help message to reflect new commands.
Updated the command parser to correctly process non-empty inputs by checking if the event body contains a command, even with leading or trailing spaces. This prevents misinterpretations of valid commands with extra spaces and ensures the bot responds appropriately.
Incremented the project version from 0.1.0 to 0.1.1 to reflect recent bug fixes and minor adjustments. This version update ensures compatibility with downstream dependencies and communicates stability improvements.
Renamed `main` to `main_async` to better reflect its asynchronous nature.
Introduced a new `main` function that runs the async function within the event loop. This refactor improves code readability and better distinguishes between the synchronous entry point and the primary asynchronous logic.
Added Forgejo Actions workflow for Python package CI/CD, enabling automated testing and deployment to PyPI upon new tags. Introduced README and LICENSE files to document and license the project. Set up project with pyproject.toml, specifying dependencies, build system, and scripts. Configured .gitignore to exclude build artifacts.
Helps automate deployment and set a structured foundation for the project.
Moved the call to get_local_users before the asynchronous HTTP session deletion to ensure user data is fetched prior to initiating the room shutdown process. This change improves the structure of the asynchronous operations and ensures local users information is available for logging and messaging promptly.
Adjusted the grammar in the configuration instructions to improve clarity. Ensured instructions explicitly state that credentials should come directly from the user's homeserver, aiding user comprehension and preventing setup errors.
Added an initial sync with a timeout of 30000ms before starting continuous synchronization to ensure the bot is ready with the latest state from the server. This change aims to prevent any missed messages that might occur during the startup phase.
Set default values for `shutdown_title` and `shutdown_message` if they are not present in the config. This prevents potential errors when these keys are missing, ensuring smoother bot initialization.
Introduced the ability to shutdown rooms with an optional purge option.
Users can now specify custom shutdown titles and messages. This enhances
the bot's ability to handle content violations more effectively and
communicate actions clearly to users.
- Added shutdown_title and shutdown_message parameters.
- Implemented shutdown_room method to manage room shutdowns.
- Updated command handler to recognize "!roomba shutdown" with "--purge".
Fixed the indentation of the send_message method within the RoombaBot class. The incorrect indentation caused the method to be misaligned, possibly resulting in an AttributeError. This ensures the method is properly defined and callable within the class.
Removed user_id from the AsyncClient constructor and set it separately on the client object. This change ensures that the user_id is consistently assigned regardless of the homeserver type, improving maintainability and clarity of client configuration.
Added optional parameters to initialize RoombaBot with Pantalaimon's homeserver and token to handle encrypted rooms. Updated configuration to include these new options. This enhancement allows secure moderation of encrypted rooms using Pantalaimon.
Added a response for unknown commands to guide users on valid usage, improving user experience and preventing misuse. Fixed indentation for async functions to ensure correct code execution. These changes address issues with command handling and function performance.
Added functionality to retrieve and include local user details
in block/unblock room messages for clarity. Implemented a new
method to fetch local users in a room by their IDs, enhancing
the feedback provided to moderators.
Introduced RoombaBot to manage room blocking/unblocking via commands.
Configured logging for better traceability of bot actions. Added
config.dist.yaml to provide a template for configuration setup.
Updated .gitignore to exclude virtual environments and unnecessary files.
This bot listens to specific commands in a moderation room and uses
Matrix administration APIs to block or unblock specified rooms.