merge-requests/8/head
Bob Mottram 2020-10-06 10:37:22 +01:00
parent 8acf9b2f3e
commit c26cfb3c93
1 changed files with 22 additions and 11 deletions

View File

@ -16,6 +16,7 @@ from collections import OrderedDict
from utils import locatePost from utils import locatePost
from utils import loadJson from utils import loadJson
from utils import isSuspended from utils import isSuspended
from utils import getConfigParam
def rss2Header(httpPrefix: str, def rss2Header(httpPrefix: str,
@ -222,17 +223,28 @@ def addAccountBlogsToNewswire(baseDir: str, nickname: str, domain: str,
break break
def isTrustedByNewswire(baseDir: str, nickname: str) -> bool:
"""Returns true if the given nickname is trusted to post
blog entries to the newswire
"""
adminNickname = getConfigParam(baseDir, 'admin')
if nickname == adminNickname:
return True
newswireTrustedFilename = baseDir + '/accounts/newswiretrusted.txt'
if os.path.isfile(newswireTrustedFilename):
with open(newswireTrustedFilename, "r") as f:
lines = f.readlines()
for trusted in lines:
if trusted.strip('\n').strip('\r') == nickname:
return True
return False
def addLocalBlogsToNewswire(baseDir: str, newswire: {}, def addLocalBlogsToNewswire(baseDir: str, newswire: {},
maxBlogsPerAccount: int) -> None: maxBlogsPerAccount: int) -> None:
"""Adds blogs from this instance into the newswire """Adds blogs from this instance into the newswire
""" """
# get the list of handles who are trusted to post to the newswire
newswireTrusted = ''
newswireTrustedFilename = baseDir + '/accounts/newswiretrusted.txt'
if os.path.isfile(newswireTrustedFilename):
with open(newswireTrustedFilename, "r") as trustFile:
newswireTrusted = trustFile.read()
# file containing suspended account nicknames # file containing suspended account nicknames
suspendedFilename = baseDir + '/accounts/suspended.txt' suspendedFilename = baseDir + '/accounts/suspended.txt'
@ -243,13 +255,12 @@ def addLocalBlogsToNewswire(baseDir: str, newswire: {},
continue continue
if 'inbox@' in handle: if 'inbox@' in handle:
continue continue
if handle not in newswireTrusted: nickname = handle.split('@')[0]
if handle.split('@')[0] + '\n' not in newswireTrusted: if not isTrustedByNewswire(baseDir, nickname):
continue continue
accountDir = os.path.join(baseDir + '/accounts', handle) accountDir = os.path.join(baseDir + '/accounts', handle)
# has this account been suspended? # has this account been suspended?
nickname = handle.split('@')[0]
if isSuspended(baseDir, nickname): if isSuspended(baseDir, nickname):
continue continue