forked from indymedia/epicyon
Moving functions out of webapp
parent
1401167fe0
commit
d34d22dc76
14
follow.py
14
follow.py
|
@ -1232,3 +1232,17 @@ def outboxUndoFollow(baseDir: str, messageJson: {}, debug: bool) -> None:
|
|||
if debug:
|
||||
print('WARN: ' + nicknameFollower + ' could not unfollow ' +
|
||||
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
|
||||
|
|
19
question.py
19
question.py
|
@ -124,3 +124,22 @@ def questionUpdateVotes(baseDir: str, nickname: str, domain: str,
|
|||
# save the question with altered totals
|
||||
saveJson(questionJson, questionPostFilename)
|
||||
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
|
||||
|
|
66
webapp.py
66
webapp.py
|
@ -24,6 +24,7 @@ from ssb import getSSBAddress
|
|||
from tox import getToxAddress
|
||||
from matrix import getMatrixAddress
|
||||
from donate import getDonationUrl
|
||||
from question import isQuestion
|
||||
from utils import firstParagraphFromString
|
||||
from utils import getCSS
|
||||
from utils import isSystemAccount
|
||||
|
@ -48,6 +49,7 @@ from utils import getConfigParam
|
|||
from utils import votesOnNewswireItem
|
||||
from utils import removeHtml
|
||||
from follow import isFollowingActor
|
||||
from follow import followerApprovalActive
|
||||
from webfinger import webfingerHandle
|
||||
from posts import isDM
|
||||
from posts import getPersonBox
|
||||
|
@ -96,7 +98,11 @@ from webapp_utils import getIconsDir
|
|||
from webapp_utils import scheduledPostsExist
|
||||
from webapp_utils import sharesTimelineJson
|
||||
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,
|
||||
|
@ -3741,20 +3747,6 @@ def addEmbeddedElements(translate: {}, content: str) -> str:
|
|||
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: {},
|
||||
nickname: str, domain: str, port: int,
|
||||
content: str,
|
||||
|
@ -5950,50 +5942,6 @@ def htmlNewswireMobile(cssCache: {}, baseDir: str, nickname: str,
|
|||
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: {},
|
||||
nickname: str, boxName: str,
|
||||
authorized: bool,
|
||||
|
|
|
@ -372,20 +372,45 @@ def postContainsPublic(postJsonObject: {}) -> bool:
|
|||
return containsPublic
|
||||
|
||||
|
||||
def isQuestion(postObjectJson: {}) -> bool:
|
||||
""" is the given post a question?
|
||||
def getImageFile(baseDir: str, name: str, directory: str,
|
||||
nickname: str, domain: str) -> (str, str):
|
||||
"""
|
||||
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
|
||||
returns the filenames for an image with the given name
|
||||
"""
|
||||
bannerExtensions = getImageExtensions()
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue