From 9aa48377755f67d276110f5db26554710b464479 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 1 Sep 2019 20:52:14 +0100 Subject: [PATCH] Check that posts don't contain replies from blocked domains --- blocking.py | 5 +++++ inbox.py | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/blocking.py b/blocking.py index acd6f0616..8318eded0 100644 --- a/blocking.py +++ b/blocking.py @@ -116,6 +116,11 @@ def isBlocked(baseDir: str,nickname: str,domain: str, \ blockNickname: str,blockDomain: str) -> bool: """Is the given nickname blocked? """ + # https://www.youtube.com/watch?v=5qw1hcevmdU + evilDomains=['gab.com','gabfed.com','spinster.xyz'] + for concentratedEvil in evilDomains: + if blockDomain.endswith(concentratedEvil): + return True globalBlockingFilename=baseDir+'/accounts/blocking.txt' if os.path.isfile(globalBlockingFilename): if '*@'+blockDomain in open(globalBlockingFilename).read(): diff --git a/inbox.py b/inbox.py index 348c595bd..aca3ccf8e 100644 --- a/inbox.py +++ b/inbox.py @@ -208,6 +208,14 @@ def savePostToInboxQueue(baseDir: str,httpPrefix: str, \ if postJsonObject.get('object'): if isinstance(postJsonObject['object'], dict): + if postJsonObject['object'].get('inReplyTo'): + if isinstance(postJsonObject['object']['inReplyTo'], str): + replyNickname=getNicknameFromActor(postJsonObject['object']['inReplyTo']) + replyDomain,replyPort=getDomainFromActor(postJsonObject['object']['inReplyTo']) + if replyNickname and replyDomain: + if isBlocked(baseDir,nickname,domain,postNickname,postDomain): + print('WARN: post contains reply from a blocked domain: '+replyDomain) + return None if postJsonObject['object'].get('content'): if isinstance(postJsonObject['object']['content'], str): if isFiltered(baseDir,nickname,domain,postJsonObject['object']['content']):