Moving functions out of webapp

main
Bob Mottram 2020-11-09 15:40:24 +00:00
parent 1401167fe0
commit d34d22dc76
4 changed files with 81 additions and 75 deletions

View File

@ -1232,3 +1232,17 @@ def outboxUndoFollow(baseDir: str, messageJson: {}, debug: bool) -> None:
if debug: if debug:
print('WARN: ' + nicknameFollower + ' could not unfollow ' + print('WARN: ' + nicknameFollower + ' could not unfollow ' +
nicknameFollowing + '@' + domainFollowingFull) nicknameFollowing + '@' + domainFollowingFull)
def followerApprovalActive(baseDir: str, nickname: str, domain: str) -> bool:
"""Returns true if the given account requires follower approval
"""
manuallyApprovesFollowers = False
actorFilename = baseDir + '/accounts/' + nickname + '@' + domain + '.json'
if os.path.isfile(actorFilename):
actorJson = loadJson(actorFilename)
if actorJson:
if actorJson.get('manuallyApprovesFollowers'):
manuallyApprovesFollowers = \
actorJson['manuallyApprovesFollowers']
return manuallyApprovesFollowers

View File

@ -124,3 +124,22 @@ def questionUpdateVotes(baseDir: str, nickname: str, domain: str,
# save the question with altered totals # save the question with altered totals
saveJson(questionJson, questionPostFilename) saveJson(questionJson, questionPostFilename)
return questionJson return questionJson
def isQuestion(postObjectJson: {}) -> bool:
""" is the given post a question?
"""
if postObjectJson['type'] != 'Create' and \
postObjectJson['type'] != 'Update':
return False
if not isinstance(postObjectJson['object'], dict):
return False
if not postObjectJson['object'].get('type'):
return False
if postObjectJson['object']['type'] != 'Question':
return False
if not postObjectJson['object'].get('oneOf'):
return False
if not isinstance(postObjectJson['object']['oneOf'], list):
return False
return True

View File

@ -24,6 +24,7 @@ from ssb import getSSBAddress
from tox import getToxAddress from tox import getToxAddress
from matrix import getMatrixAddress from matrix import getMatrixAddress
from donate import getDonationUrl from donate import getDonationUrl
from question import isQuestion
from utils import firstParagraphFromString from utils import firstParagraphFromString
from utils import getCSS from utils import getCSS
from utils import isSystemAccount from utils import isSystemAccount
@ -48,6 +49,7 @@ from utils import getConfigParam
from utils import votesOnNewswireItem from utils import votesOnNewswireItem
from utils import removeHtml from utils import removeHtml
from follow import isFollowingActor from follow import isFollowingActor
from follow import followerApprovalActive
from webfinger import webfingerHandle from webfinger import webfingerHandle
from posts import isDM from posts import isDM
from posts import getPersonBox from posts import getPersonBox
@ -96,7 +98,11 @@ from webapp_utils import getIconsDir
from webapp_utils import scheduledPostsExist from webapp_utils import scheduledPostsExist
from webapp_utils import sharesTimelineJson from webapp_utils import sharesTimelineJson
from webapp_utils import postContainsPublic from webapp_utils import postContainsPublic
from webapp_utils import isQuestion from webapp_utils import getImageFile
from webapp_utils import getBannerFile
from webapp_utils import getSearchBannerFile
from webapp_utils import getLeftImageFile
from webapp_utils import getRightImageFile
def htmlFollowingList(cssCache: {}, baseDir: str, def htmlFollowingList(cssCache: {}, baseDir: str,
@ -3741,20 +3747,6 @@ def addEmbeddedElements(translate: {}, content: str) -> str:
return addEmbeddedVideo(translate, content) return addEmbeddedVideo(translate, content)
def followerApprovalActive(baseDir: str, nickname: str, domain: str) -> bool:
"""Returns true if the given account requires follower approval
"""
manuallyApprovesFollowers = False
actorFilename = baseDir + '/accounts/' + nickname + '@' + domain + '.json'
if os.path.isfile(actorFilename):
actorJson = loadJson(actorFilename)
if actorJson:
if actorJson.get('manuallyApprovesFollowers'):
manuallyApprovesFollowers = \
actorJson['manuallyApprovesFollowers']
return manuallyApprovesFollowers
def insertQuestion(baseDir: str, translate: {}, def insertQuestion(baseDir: str, translate: {},
nickname: str, domain: str, port: int, nickname: str, domain: str, port: int,
content: str, content: str,
@ -5950,50 +5942,6 @@ def htmlNewswireMobile(cssCache: {}, baseDir: str, nickname: str,
return htmlStr return htmlStr
def getImageFile(baseDir: str, name: str, directory: str,
nickname: str, domain: str) -> (str, str):
"""
returns the filenames for an image with the given name
"""
bannerExtensions = ('png', 'jpg', 'jpeg', 'gif', 'avif', 'webp')
bannerFile = ''
bannerFilename = ''
for ext in bannerExtensions:
bannerFile = name + '.' + ext
bannerFilename = directory + '/' + bannerFile
if os.path.isfile(bannerFilename):
break
return bannerFile, bannerFilename
def getBannerFile(baseDir: str,
nickname: str, domain: str) -> (str, str):
return getImageFile(baseDir, 'banner',
baseDir + '/accounts/' + nickname + '@' + domain,
nickname, domain)
def getSearchBannerFile(baseDir: str,
nickname: str, domain: str) -> (str, str):
return getImageFile(baseDir, 'search_banner',
baseDir + '/accounts/' + nickname + '@' + domain,
nickname, domain)
def getLeftImageFile(baseDir: str,
nickname: str, domain: str) -> (str, str):
return getImageFile(baseDir, 'left_col_image',
baseDir + '/accounts/' + nickname + '@' + domain,
nickname, domain)
def getRightImageFile(baseDir: str,
nickname: str, domain: str) -> (str, str):
return getImageFile(baseDir, 'right_col_image',
baseDir + '/accounts/' + nickname + '@' + domain,
nickname, domain)
def headerButtonsFrontScreen(translate: {}, def headerButtonsFrontScreen(translate: {},
nickname: str, boxName: str, nickname: str, boxName: str,
authorized: bool, authorized: bool,

View File

@ -372,20 +372,45 @@ def postContainsPublic(postJsonObject: {}) -> bool:
return containsPublic return containsPublic
def isQuestion(postObjectJson: {}) -> bool: def getImageFile(baseDir: str, name: str, directory: str,
""" is the given post a question? nickname: str, domain: str) -> (str, str):
""" """
if postObjectJson['type'] != 'Create' and \ returns the filenames for an image with the given name
postObjectJson['type'] != 'Update': """
return False bannerExtensions = getImageExtensions()
if not isinstance(postObjectJson['object'], dict): bannerFile = ''
return False bannerFilename = ''
if not postObjectJson['object'].get('type'): for ext in bannerExtensions:
return False bannerFile = name + '.' + ext
if postObjectJson['object']['type'] != 'Question': bannerFilename = directory + '/' + bannerFile
return False if os.path.isfile(bannerFilename):
if not postObjectJson['object'].get('oneOf'): break
return False return bannerFile, bannerFilename
if not isinstance(postObjectJson['object']['oneOf'], list):
return False
return True def getBannerFile(baseDir: str,
nickname: str, domain: str) -> (str, str):
return getImageFile(baseDir, 'banner',
baseDir + '/accounts/' + nickname + '@' + domain,
nickname, domain)
def getSearchBannerFile(baseDir: str,
nickname: str, domain: str) -> (str, str):
return getImageFile(baseDir, 'search_banner',
baseDir + '/accounts/' + nickname + '@' + domain,
nickname, domain)
def getLeftImageFile(baseDir: str,
nickname: str, domain: str) -> (str, str):
return getImageFile(baseDir, 'left_col_image',
baseDir + '/accounts/' + nickname + '@' + domain,
nickname, domain)
def getRightImageFile(baseDir: str,
nickname: str, domain: str) -> (str, str):
return getImageFile(baseDir, 'right_col_image',
baseDir + '/accounts/' + nickname + '@' + domain,
nickname, domain)