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.