diff options
author | David Baker <dbkr@users.noreply.github.com> | 2017-09-27 11:31:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-27 11:31:00 +0100 |
commit | 74e494b0101c5ff2bf406c6487f6c36dd67eca49 (patch) | |
tree | e2599991593707e460fafd1456655585a0148b82 /synapse/events/spamcheck.py | |
parent | pep8 (diff) | |
parent | Don't test is spam_checker not None (diff) | |
download | synapse-74e494b0101c5ff2bf406c6487f6c36dd67eca49.tar.xz |
Merge pull request #2474 from matrix-org/dbkr/spam_check_module
Make the spam checker a module
Diffstat (limited to 'synapse/events/spamcheck.py')
-rw-r--r-- | synapse/events/spamcheck.py | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/synapse/events/spamcheck.py b/synapse/events/spamcheck.py index 56fa9e556e..e739f105b2 100644 --- a/synapse/events/spamcheck.py +++ b/synapse/events/spamcheck.py @@ -14,25 +14,34 @@ # limitations under the License. -def check_event_for_spam(event): - """Checks if a given event is considered "spammy" by this server. +class SpamChecker(object): + def __init__(self, hs): + self.spam_checker = None - If the server considers an event spammy, then it will be rejected if - sent by a local user. If it is sent by a user on another server, then - users receive a blank event. + module = None + config = None + try: + module, config = hs.config.spam_checker + except: + pass - Args: - event (synapse.events.EventBase): the event to be checked + if module is not None: + self.spam_checker = module(config=config) - Returns: - bool: True if the event is spammy. - """ - if not hasattr(event, "content") or "body" not in event.content: - return False + def check_event_for_spam(self, event): + """Checks if a given event is considered "spammy" by this server. - # for example: - # - # if "the third flower is green" in event.content["body"]: - # return True + If the server considers an event spammy, then it will be rejected if + sent by a local user. If it is sent by a user on another server, then + users receive a blank event. - return False + Args: + event (synapse.events.EventBase): the event to be checked + + Returns: + bool: True if the event is spammy. + """ + if self.spam_checker is None: + return False + + return self.spam_checker.check_event_for_spam(event) |