Fix spam checker modules documentation example (#9580)

Mention that parse_config must exist and note the
check_media_file_for_spam method.
pull/9587/head
Jason Robinson 2021-03-10 17:42:51 +02:00 committed by GitHub
parent 2a99cc6524
commit 17cd48fe51
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

1
changelog.d/9580.doc Normal file
View File

@ -0,0 +1 @@
Clarify the spam checker modules documentation example to mention that `parse_config` is a required method.

View File

@ -14,6 +14,7 @@ The Python class is instantiated with two objects:
* An instance of `synapse.module_api.ModuleApi`. * An instance of `synapse.module_api.ModuleApi`.
It then implements methods which return a boolean to alter behavior in Synapse. It then implements methods which return a boolean to alter behavior in Synapse.
All the methods must be defined.
There's a generic method for checking every event (`check_event_for_spam`), as There's a generic method for checking every event (`check_event_for_spam`), as
well as some specific methods: well as some specific methods:
@ -24,6 +25,7 @@ well as some specific methods:
* `user_may_publish_room` * `user_may_publish_room`
* `check_username_for_spam` * `check_username_for_spam`
* `check_registration_for_spam` * `check_registration_for_spam`
* `check_media_file_for_spam`
The details of each of these methods (as well as their inputs and outputs) The details of each of these methods (as well as their inputs and outputs)
are documented in the `synapse.events.spamcheck.SpamChecker` class. are documented in the `synapse.events.spamcheck.SpamChecker` class.
@ -31,6 +33,10 @@ are documented in the `synapse.events.spamcheck.SpamChecker` class.
The `ModuleApi` class provides a way for the custom spam checker class to The `ModuleApi` class provides a way for the custom spam checker class to
call back into the homeserver internals. call back into the homeserver internals.
Additionally, a `parse_config` method is mandatory and receives the plugin config
dictionary. After parsing, It must return an object which will be
passed to `__init__` later.
### Example ### Example
```python ```python
@ -41,6 +47,10 @@ class ExampleSpamChecker:
self.config = config self.config = config
self.api = api self.api = api
@staticmethod
def parse_config(config):
return config
async def check_event_for_spam(self, foo): async def check_event_for_spam(self, foo):
return False # allow all events return False # allow all events