# Community Bot a maubot plugin that attempts to assist administrators of communities on matrix, based on the concept of matrix spaces. this bot will attempt to administer any room that it is in (specifically user activity tracking), so you may want to leverage [join](https://github.com/williamkray/maubot-join) to ensure your bot doesn't end up somewhere it's not supposed to be. # features ## activity tracking and reporting tracks the last message timestamp of a user across any room that the bot is in, and generates a simple report. intended to be used to boot people from a matrix space and all space rooms after a period of inactivity (prune inactive users) with the `purge` subcommand. supports simple threshold configuration and the option to also track "reaction" activity. you can also exempt users from showing as "inactive" in the report by setting their ignore status with the `ignore` and `unignore` subcommands, e.g. `!community ignore @takinabreak:fromthis.group`. this is helpful to avoid accidentally purging admin accounts, backup accounts, rarely used bots, etc. `sync` subcommand will actively sync your space member list with the database to track active members properly. new members to the space automatically trigger a sync, as do most other commands. this command is mostly deprecated but you may want to run it just to see what it does. generate a report with the `report` subcommand (i.e. `!community report`) to see your inactive users. ## user management purge inactive users with the `purge` subcommand (i.e. `!community purge`). kick an individual user from your space and all child rooms, regardless of activity status, with the `kick` subcommand (e.g. `!community kick @malicious:user.here`). this is useful in communities built on the concept of private (invite only) matrix spaces. if you want more sever action, use the `ban` and `unban` subcommands to ban users from all rooms in the space (this action will automatically kick them from those rooms as well). if you've made a mistake, use the unban option, but they will need to rejoin all rooms themselves or be re-invited. use the `guests` subcommand to see who is in a room but NOT a member of the parent space (invited guests) e.g. `!community guests #myroom:alias.here`. ## room creation use the `createroom` subcommand to create a new room according to your preferences, and join it into the parent space. will attempt to sanitize the room name and assign a room alias automatically. the bot user will be assigned very high power level (1000) and set an admin power level (100) to plugin administrators. this ensures that the bot is still able to manage room admins. the bot will also invite other users to these new rooms as configured. # installation install this like any other maubot plugin: zip the contents of this repo into a file and upload via the web interface, or use the `mbc` utility to package and upload to your maubot server. be sure to give your bot permission to kick people from all rooms, otherwise management features will not work! for more robust management, check out the [welcome](https://github.com/williamkray/maubot-welcome), [join](https://github.com/williamkray/maubot-join) plugins as well.