Make the spam checker a module

This commit is contained in:
David Baker 2017-09-26 19:20:23 +01:00
parent ccc67d445b
commit 6cd5fcd536
5 changed files with 33 additions and 23 deletions

View file

@ -13,26 +13,29 @@
# See the License for the specific language governing permissions and
# limitations under the License.
class SpamChecker(object):
def __init__(self, hs):
self.spam_checker = None
def check_event_for_spam(event):
"""Checks if a given event is considered "spammy" by this server.
if hs.config.spam_checker is not None:
module, config = hs.config.spam_checker
print("cfg %r", config)
self.spam_checker = module(config=config)
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.
def check_event_for_spam(self, event):
"""Checks if a given event is considered "spammy" by this server.
Args:
event (synapse.events.EventBase): the event to be checked
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.
Returns:
bool: True if the event is spammy.
"""
if not hasattr(event, "content") or "body" not in event.content:
return False
Args:
event (synapse.events.EventBase): the event to be checked
# for example:
#
# if "the third flower is green" in event.content["body"]:
# return True
Returns:
bool: True if the event is spammy.
"""
if self.spam_checker is None:
return False
return False
return self.spam_checker.check_event_for_spam(event)