mirror of https://gitlab.com/bashrc2/epicyon
Mark announces which are invalid with reject extension
parent
79610c8bf8
commit
568d73845d
61
posts.py
61
posts.py
|
@ -3157,6 +3157,10 @@ def _createBoxIndexed(recentPostsCache: {},
|
||||||
if not postFilename:
|
if not postFilename:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
# has the post been rejected?
|
||||||
|
if os.path.isfile(postFilename + '.reject'):
|
||||||
|
continue
|
||||||
|
|
||||||
# apply votes within this timeline
|
# apply votes within this timeline
|
||||||
if newswireVotesThreshold > 0:
|
if newswireVotesThreshold > 0:
|
||||||
# note that the presence of an arrival file also indicates
|
# note that the presence of an arrival file also indicates
|
||||||
|
@ -3875,9 +3879,21 @@ def populateRepliesJson(baseDir: str, nickname: str, domain: str,
|
||||||
repliesJson['orderedItems'].append(pjo)
|
repliesJson['orderedItems'].append(pjo)
|
||||||
|
|
||||||
|
|
||||||
def _rejectAnnounce(announceFilename: str):
|
def _rejectAnnounce(announceFilename: str,
|
||||||
|
baseDir: str, nickname: str, domain: str,
|
||||||
|
announcePostId: str):
|
||||||
"""Marks an announce as rejected
|
"""Marks an announce as rejected
|
||||||
"""
|
"""
|
||||||
|
# reject the announce activity
|
||||||
|
announcePostFilename = \
|
||||||
|
locatePost(baseDir, nickname, domain, announcePostId)
|
||||||
|
if announcePostFilename:
|
||||||
|
rejectAnnounceFile = open(announcePostFilename + '.reject', "w+")
|
||||||
|
if rejectAnnounceFile:
|
||||||
|
rejectAnnounceFile.write('\n')
|
||||||
|
rejectAnnounceFile.close()
|
||||||
|
|
||||||
|
# reject the post referenced by the announce activity object
|
||||||
if not os.path.isfile(announceFilename + '.reject'):
|
if not os.path.isfile(announceFilename + '.reject'):
|
||||||
rejectAnnounceFile = open(announceFilename + '.reject', "w+")
|
rejectAnnounceFile = open(announceFilename + '.reject', "w+")
|
||||||
if rejectAnnounceFile:
|
if rejectAnnounceFile:
|
||||||
|
@ -3901,6 +3917,10 @@ def downloadAnnounce(session, baseDir: str, httpPrefix: str,
|
||||||
announceCacheDir = baseDir + '/cache/announce/' + nickname
|
announceCacheDir = baseDir + '/cache/announce/' + nickname
|
||||||
if not os.path.isdir(announceCacheDir):
|
if not os.path.isdir(announceCacheDir):
|
||||||
os.mkdir(announceCacheDir)
|
os.mkdir(announceCacheDir)
|
||||||
|
|
||||||
|
postId = None
|
||||||
|
if postJsonObject.get('id'):
|
||||||
|
postId = postJsonObject['id']
|
||||||
announceFilename = \
|
announceFilename = \
|
||||||
announceCacheDir + '/' + \
|
announceCacheDir + '/' + \
|
||||||
postJsonObject['object'].replace('/', '#') + '.json'
|
postJsonObject['object'].replace('/', '#') + '.json'
|
||||||
|
@ -3961,43 +3981,54 @@ def downloadAnnounce(session, baseDir: str, httpPrefix: str,
|
||||||
if not isinstance(announcedJson, dict):
|
if not isinstance(announcedJson, dict):
|
||||||
print('WARN: announce json is not a dict - ' +
|
print('WARN: announce json is not a dict - ' +
|
||||||
postJsonObject['object'])
|
postJsonObject['object'])
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
if not announcedJson.get('id'):
|
if not announcedJson.get('id'):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
if '/statuses/' not in announcedJson['id']:
|
if '/statuses/' not in announcedJson['id']:
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
if not hasUsersPath(announcedJson['id']):
|
if not hasUsersPath(announcedJson['id']):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
if not announcedJson.get('type'):
|
if not announcedJson.get('type'):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
if announcedJson['type'] != 'Note' and \
|
if announcedJson['type'] != 'Note' and \
|
||||||
announcedJson['type'] != 'Article':
|
announcedJson['type'] != 'Article':
|
||||||
# You can only announce Note or Article types
|
# You can only announce Note or Article types
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
if not announcedJson.get('content'):
|
if not announcedJson.get('content'):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
if not announcedJson.get('published'):
|
if not announcedJson.get('published'):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
if not validPostDate(announcedJson['published']):
|
if not validPostDate(announcedJson['published']):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# Check the content of the announce
|
# Check the content of the announce
|
||||||
contentStr = announcedJson['content']
|
contentStr = announcedJson['content']
|
||||||
if dangerousMarkup(contentStr, allowLocalNetworkAccess):
|
if dangerousMarkup(contentStr, allowLocalNetworkAccess):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if isFiltered(baseDir, nickname, domain, contentStr):
|
if isFiltered(baseDir, nickname, domain, contentStr):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# remove any long words
|
# remove any long words
|
||||||
|
@ -4016,7 +4047,8 @@ def downloadAnnounce(session, baseDir: str, httpPrefix: str,
|
||||||
announcedJson)
|
announcedJson)
|
||||||
if announcedJson['type'] != 'Create':
|
if announcedJson['type'] != 'Create':
|
||||||
# Create wrap failed
|
# Create wrap failed
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# labelAccusatoryPost(postJsonObject, translate)
|
# labelAccusatoryPost(postJsonObject, translate)
|
||||||
|
@ -4032,7 +4064,8 @@ def downloadAnnounce(session, baseDir: str, httpPrefix: str,
|
||||||
attributedDomain = getFullDomain(attributedDomain, attributedPort)
|
attributedDomain = getFullDomain(attributedDomain, attributedPort)
|
||||||
if isBlocked(baseDir, nickname, domain,
|
if isBlocked(baseDir, nickname, domain,
|
||||||
attributedNickname, attributedDomain):
|
attributedNickname, attributedDomain):
|
||||||
_rejectAnnounce(announceFilename)
|
_rejectAnnounce(announceFilename,
|
||||||
|
baseDir, nickname, domain, postId)
|
||||||
return None
|
return None
|
||||||
postJsonObject = announcedJson
|
postJsonObject = announcedJson
|
||||||
replaceYouTube(postJsonObject, YTReplacementDomain)
|
replaceYouTube(postJsonObject, YTReplacementDomain)
|
||||||
|
|
2
utils.py
2
utils.py
|
@ -1206,7 +1206,7 @@ def deletePost(baseDir: str, httpPrefix: str,
|
||||||
# remove any attachment
|
# remove any attachment
|
||||||
_removeAttachment(baseDir, httpPrefix, domain, postJsonObject)
|
_removeAttachment(baseDir, httpPrefix, domain, postJsonObject)
|
||||||
|
|
||||||
extensions = ('votes', 'arrived', 'muted', '.tts')
|
extensions = ('votes', 'arrived', 'muted', 'tts', 'reject')
|
||||||
for ext in extensions:
|
for ext in extensions:
|
||||||
extFilename = postFilename + '.' + ext
|
extFilename = postFilename + '.' + ext
|
||||||
if os.path.isfile(extFilename):
|
if os.path.isfile(extFilename):
|
||||||
|
|
Loading…
Reference in New Issue