#
MatrixAntiDmSpam
---
A project to make invite spam more manageable at scale.
[Matrix room](https://matrix.to/#/%23anti-dm-spam%3Arory.gay?via=rory.gay)
## Dependencies
- `dotnet-sdk 9.0.200+`
- A device that is online a lot of the time, can be a server
## Setup
```shell
# Check out the repository + submodules
git clone --recursive https://cgit.rory.gay/matrix/tools/MatrixAntiDmSpam.git
# Build and install
./install.sh
# Install or update services to make sure the bot starts up with your system
./install-user-services.sh
```
Manual setup
```shell
# Check out the repository + submodules
git clone --recursive https://cgit.rory.gay/matrix/tools/MatrixAntiDmSpam.git
# Enter project directory
cd MatrixAntiDmSpam/MatrixAntiDmSpam
# Build the project
dotnet publish -c Release
# Install binaries
sudo cp bin/Release/net9.0/linux-x64/publish /opt/MatrixAntiDmSpam
```
Next, you want to set up a working directory (`~/.local/share/MatrixAntiDmSpam` works well), and copy your access token into a new file (ie. `nano -L ~/.matrix-access-token`).
Additionally, you want to copy `appsettings.Development.json` into your working directory, edit it to your liking and rename it to `appsettings.json`.
Advanced configuration
Additionally: you can use `appsettings.SomethingHere.json` and use `DOTNET_ENVIRONMENT=SomethingHere` if you want to set this up for multiple accounts. `appsettings.json` is always loaded for shared values.
Alternatively, you can use environment variables like `LibMatrixBot__AccessTokenPath=/path/to/access-token` to override values in the configuration file, using double undercores (`__`) as path separator.
Note that `PolicyLists` refers to special rooms known as Policy List rooms, which are commonly used by moderation bots as Mjolnir and Draupnir.
The default value (Community Moderation Effort) is a policy list that is used by a fairly large number of communities, and is a good starting point.
Additionally, Element Web supports these for hiding messages via a labs flag.
Also note that these may break certain clients, such as
FluffyChat ([#814](https://github.com/krille-chan/fluffychat/issues/814), [#858](https://github.com/krille-chan/fluffychat/issues/858), [#905](https://github.com/krille-chan/fluffychat/issues/905)).
## Running
```shell
# Run the bot
cd ~/.local/share/MatrixAntiDmSpam
/opt/MatrixAntiDmSpam/MatrixAntiDmSpam
```