mirror of https://gitlab.com/bashrc2/epicyon
Additional ise of blocked domains cache
parent
1576db8ae3
commit
7d6b6d95fb
33
blocking.py
33
blocking.py
|
@ -243,19 +243,33 @@ def isBlockedDomain(baseDir: str, domain: str,
|
|||
|
||||
|
||||
def isBlocked(baseDir: str, nickname: str, domain: str,
|
||||
blockNickname: str, blockDomain: str) -> bool:
|
||||
blockNickname: str, blockDomain: str,
|
||||
blockedCache: [] = None) -> bool:
|
||||
"""Is the given nickname blocked?
|
||||
"""
|
||||
if isEvil(blockDomain):
|
||||
return True
|
||||
globalBlockingFilename = baseDir + '/accounts/blocking.txt'
|
||||
if os.path.isfile(globalBlockingFilename):
|
||||
if '*@' + blockDomain in open(globalBlockingFilename).read():
|
||||
return True
|
||||
if blockNickname:
|
||||
blockHandle = blockNickname + '@' + blockDomain
|
||||
if blockHandle in open(globalBlockingFilename).read():
|
||||
|
||||
blockHandle = None
|
||||
if blockNickname and blockDomain:
|
||||
blockHandle = blockNickname + '@' + blockDomain
|
||||
|
||||
if blockedCache:
|
||||
for blockedStr in blockedCache:
|
||||
if '*@' + domain in blockedStr:
|
||||
return True
|
||||
if blockHandle:
|
||||
if blockHandle in blockedStr:
|
||||
return True
|
||||
else:
|
||||
globalBlockingFilename = baseDir + '/accounts/blocking.txt'
|
||||
if os.path.isfile(globalBlockingFilename):
|
||||
if '*@' + blockDomain in open(globalBlockingFilename).read():
|
||||
return True
|
||||
if blockHandle:
|
||||
if blockHandle in open(globalBlockingFilename).read():
|
||||
return True
|
||||
|
||||
allowFilename = baseDir + '/accounts/' + \
|
||||
nickname + '@' + domain + '/allowedinstances.txt'
|
||||
if os.path.isfile(allowFilename):
|
||||
|
@ -266,8 +280,7 @@ def isBlocked(baseDir: str, nickname: str, domain: str,
|
|||
if os.path.isfile(blockingFilename):
|
||||
if '*@' + blockDomain in open(blockingFilename).read():
|
||||
return True
|
||||
if blockNickname:
|
||||
blockHandle = blockNickname + '@' + blockDomain
|
||||
if blockHandle:
|
||||
if blockHandle in open(blockingFilename).read():
|
||||
return True
|
||||
return False
|
||||
|
|
10
daemon.py
10
daemon.py
|
@ -1277,6 +1277,13 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
beginSaveTime = time.time()
|
||||
# save the json for later queue processing
|
||||
messageBytesDecoded = messageBytes.decode('utf-8')
|
||||
|
||||
self.server.blockedCacheLastUpdated = \
|
||||
updateBlockedCache(self.server.baseDir,
|
||||
self.server.blockedCache,
|
||||
self.server.blockedCacheLastUpdated,
|
||||
self.server.blockedCacheUpdateSecs)
|
||||
|
||||
queueFilename = \
|
||||
savePostToInboxQueue(self.server.baseDir,
|
||||
self.server.httpPrefix,
|
||||
|
@ -1286,7 +1293,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
messageBytesDecoded,
|
||||
headersDict,
|
||||
self.path,
|
||||
self.server.debug)
|
||||
self.server.debug,
|
||||
self.server.blockedCache)
|
||||
if queueFilename:
|
||||
# add json to the queue
|
||||
if queueFilename not in self.server.inboxQueue:
|
||||
|
|
11
inbox.py
11
inbox.py
|
@ -353,7 +353,8 @@ def savePostToInboxQueue(baseDir: str, httpPrefix: str,
|
|||
originalPostJsonObject: {},
|
||||
messageBytes: str,
|
||||
httpHeaders: {},
|
||||
postPath: str, debug: bool) -> str:
|
||||
postPath: str, debug: bool,
|
||||
blockedCache: []) -> str:
|
||||
"""Saves the give json to the inbox queue for the person
|
||||
keyId specifies the actor sending the post
|
||||
"""
|
||||
|
@ -384,7 +385,8 @@ def savePostToInboxQueue(baseDir: str, httpPrefix: str,
|
|||
pprint(postJsonObject)
|
||||
print('No post Domain in actor')
|
||||
return None
|
||||
if isBlocked(baseDir, nickname, domain, postNickname, postDomain):
|
||||
if isBlocked(baseDir, nickname, domain,
|
||||
postNickname, postDomain, blockedCache):
|
||||
if debug:
|
||||
print('DEBUG: post from ' + postNickname + ' blocked')
|
||||
return None
|
||||
|
@ -398,7 +400,7 @@ def savePostToInboxQueue(baseDir: str, httpPrefix: str,
|
|||
postJsonObject['object']['inReplyTo']
|
||||
replyDomain, replyPort = \
|
||||
getDomainFromActor(inReplyTo)
|
||||
if isBlockedDomain(baseDir, replyDomain):
|
||||
if isBlockedDomain(baseDir, replyDomain, blockedCache):
|
||||
if debug:
|
||||
print('WARN: post contains reply from ' +
|
||||
str(actor) +
|
||||
|
@ -409,7 +411,8 @@ def savePostToInboxQueue(baseDir: str, httpPrefix: str,
|
|||
getNicknameFromActor(inReplyTo)
|
||||
if replyNickname and replyDomain:
|
||||
if isBlocked(baseDir, nickname, domain,
|
||||
replyNickname, replyDomain):
|
||||
replyNickname, replyDomain,
|
||||
blockedCache):
|
||||
if debug:
|
||||
print('WARN: post contains reply from ' +
|
||||
str(actor) +
|
||||
|
|
Loading…
Reference in New Issue