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:
|
||||
break
|
||||
|
||||
# has the post been rejected?
|
||||
if os.path.isfile(postFilename + '.reject'):
|
||||
continue
|
||||
|
||||
# apply votes within this timeline
|
||||
if newswireVotesThreshold > 0:
|
||||
# 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)
|
||||
|
||||
|
||||
def _rejectAnnounce(announceFilename: str):
|
||||
def _rejectAnnounce(announceFilename: str,
|
||||
baseDir: str, nickname: str, domain: str,
|
||||
announcePostId: str):
|
||||
"""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'):
|
||||
rejectAnnounceFile = open(announceFilename + '.reject', "w+")
|
||||
if rejectAnnounceFile:
|
||||
|
@ -3901,6 +3917,10 @@ def downloadAnnounce(session, baseDir: str, httpPrefix: str,
|
|||
announceCacheDir = baseDir + '/cache/announce/' + nickname
|
||||
if not os.path.isdir(announceCacheDir):
|
||||
os.mkdir(announceCacheDir)
|
||||
|
||||
postId = None
|
||||
if postJsonObject.get('id'):
|
||||
postId = postJsonObject['id']
|
||||
announceFilename = \
|
||||
announceCacheDir + '/' + \
|
||||
postJsonObject['object'].replace('/', '#') + '.json'
|
||||
|
@ -3961,43 +3981,54 @@ def downloadAnnounce(session, baseDir: str, httpPrefix: str,
|
|||
if not isinstance(announcedJson, dict):
|
||||
print('WARN: announce json is not a dict - ' +
|
||||
postJsonObject['object'])
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
if not announcedJson.get('id'):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
if '/statuses/' not in announcedJson['id']:
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
if not hasUsersPath(announcedJson['id']):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
if not announcedJson.get('type'):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
if announcedJson['type'] != 'Note' and \
|
||||
announcedJson['type'] != 'Article':
|
||||
# You can only announce Note or Article types
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
if not announcedJson.get('content'):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
if not announcedJson.get('published'):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
if not validPostDate(announcedJson['published']):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
|
||||
# Check the content of the announce
|
||||
contentStr = announcedJson['content']
|
||||
if dangerousMarkup(contentStr, allowLocalNetworkAccess):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
|
||||
if isFiltered(baseDir, nickname, domain, contentStr):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
|
||||
# remove any long words
|
||||
|
@ -4016,7 +4047,8 @@ def downloadAnnounce(session, baseDir: str, httpPrefix: str,
|
|||
announcedJson)
|
||||
if announcedJson['type'] != 'Create':
|
||||
# Create wrap failed
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
|
||||
# labelAccusatoryPost(postJsonObject, translate)
|
||||
|
@ -4032,7 +4064,8 @@ def downloadAnnounce(session, baseDir: str, httpPrefix: str,
|
|||
attributedDomain = getFullDomain(attributedDomain, attributedPort)
|
||||
if isBlocked(baseDir, nickname, domain,
|
||||
attributedNickname, attributedDomain):
|
||||
_rejectAnnounce(announceFilename)
|
||||
_rejectAnnounce(announceFilename,
|
||||
baseDir, nickname, domain, postId)
|
||||
return None
|
||||
postJsonObject = announcedJson
|
||||
replaceYouTube(postJsonObject, YTReplacementDomain)
|
||||
|
|
2
utils.py
2
utils.py
|
@ -1206,7 +1206,7 @@ def deletePost(baseDir: str, httpPrefix: str,
|
|||
# remove any attachment
|
||||
_removeAttachment(baseDir, httpPrefix, domain, postJsonObject)
|
||||
|
||||
extensions = ('votes', 'arrived', 'muted', '.tts')
|
||||
extensions = ('votes', 'arrived', 'muted', 'tts', 'reject')
|
||||
for ext in extensions:
|
||||
extFilename = postFilename + '.' + ext
|
||||
if os.path.isfile(extFilename):
|
||||
|
|
|
@ -731,7 +731,7 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str,
|
|||
itemCtr += 1
|
||||
tlStr += textModeSeparator + currTlStr
|
||||
if separatorStr:
|
||||
tlStr += separatorStr
|
||||
tlStr += separatorStr
|
||||
if boxName == 'tlmedia':
|
||||
tlStr += '</div>\n'
|
||||
|
||||
|
|
Loading…
Reference in New Issue