forked from indymedia/epicyon
Function to get the published date on a post
parent
3294c6e928
commit
067da61632
111
webapp_post.py
111
webapp_post.py
|
@ -542,6 +542,66 @@ def getMuteIconHtml(isMuted: bool,
|
||||||
return muteStr
|
return muteStr
|
||||||
|
|
||||||
|
|
||||||
|
def getDeleteIconHtml(nickname: str, domainFull: str,
|
||||||
|
allowDeletion: bool,
|
||||||
|
postActor: str,
|
||||||
|
messageId: str,
|
||||||
|
postJsonObject: {},
|
||||||
|
pageNumberParam: str,
|
||||||
|
iconsPath: str,
|
||||||
|
translate: {}) -> str:
|
||||||
|
"""Returns html for delete icon/button
|
||||||
|
"""
|
||||||
|
deleteStr = ''
|
||||||
|
if (allowDeletion or
|
||||||
|
('/' + domainFull + '/' in postActor and
|
||||||
|
messageId.startswith(postActor))):
|
||||||
|
if '/users/' + nickname + '/' in messageId:
|
||||||
|
if not isNewsPost(postJsonObject):
|
||||||
|
deleteStr = \
|
||||||
|
' <a class="imageAnchor" href="/users/' + \
|
||||||
|
nickname + \
|
||||||
|
'?delete=' + messageId + pageNumberParam + \
|
||||||
|
'" title="' + translate['Delete this post'] + '">\n'
|
||||||
|
deleteStr += \
|
||||||
|
' ' + \
|
||||||
|
'<img loading="lazy" alt="' + \
|
||||||
|
translate['Delete this post'] + \
|
||||||
|
' |" title="' + translate['Delete this post'] + \
|
||||||
|
'" src="/' + iconsPath + '/delete.png"/></a>\n'
|
||||||
|
return deleteStr
|
||||||
|
|
||||||
|
|
||||||
|
def getPublishedDateStr(postJsonObject: {},
|
||||||
|
showPublishedDateOnly: bool) -> str:
|
||||||
|
"""Return the html for the published date on a post
|
||||||
|
"""
|
||||||
|
publishedStr = ''
|
||||||
|
if postJsonObject['object'].get('published'):
|
||||||
|
publishedStr = postJsonObject['object']['published']
|
||||||
|
if '.' not in publishedStr:
|
||||||
|
if '+' not in publishedStr:
|
||||||
|
datetimeObject = \
|
||||||
|
datetime.strptime(publishedStr, "%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
else:
|
||||||
|
datetimeObject = \
|
||||||
|
datetime.strptime(publishedStr.split('+')[0] + 'Z',
|
||||||
|
"%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
else:
|
||||||
|
publishedStr = \
|
||||||
|
publishedStr.replace('T', ' ').split('.')[0]
|
||||||
|
datetimeObject = parse(publishedStr)
|
||||||
|
if not showPublishedDateOnly:
|
||||||
|
publishedStr = datetimeObject.strftime("%a %b %d, %H:%M")
|
||||||
|
else:
|
||||||
|
publishedStr = datetimeObject.strftime("%a %b %d")
|
||||||
|
# if the post has replies then append a symbol to indicate this
|
||||||
|
if postJsonObject.get('hasReplies'):
|
||||||
|
if postJsonObject['hasReplies'] is True:
|
||||||
|
publishedStr = '[' + publishedStr + ']'
|
||||||
|
return publishedStr
|
||||||
|
|
||||||
|
|
||||||
def individualPostAsHtml(allowDownloads: bool,
|
def individualPostAsHtml(allowDownloads: bool,
|
||||||
recentPostsCache: {}, maxRecentPosts: int,
|
recentPostsCache: {}, maxRecentPosts: int,
|
||||||
iconsPath: str, translate: {},
|
iconsPath: str, translate: {},
|
||||||
|
@ -890,23 +950,15 @@ def individualPostAsHtml(allowDownloads: bool,
|
||||||
timelinePostBookmark,
|
timelinePostBookmark,
|
||||||
translate)
|
translate)
|
||||||
|
|
||||||
deleteStr = ''
|
deleteStr = \
|
||||||
if (allowDeletion or
|
getDeleteIconHtml(nickname, domainFull,
|
||||||
('/' + domainFull + '/' in postActor and
|
allowDeletion,
|
||||||
messageId.startswith(postActor))):
|
postActor,
|
||||||
if '/users/' + nickname + '/' in messageId:
|
messageId,
|
||||||
if not isNewsPost(postJsonObject):
|
postJsonObject,
|
||||||
deleteStr = \
|
pageNumberParam,
|
||||||
' <a class="imageAnchor" href="/users/' + \
|
iconsPath,
|
||||||
nickname + \
|
translate)
|
||||||
'?delete=' + messageId + pageNumberParam + \
|
|
||||||
'" title="' + translate['Delete this post'] + '">\n'
|
|
||||||
deleteStr += \
|
|
||||||
' ' + \
|
|
||||||
'<img loading="lazy" alt="' + \
|
|
||||||
translate['Delete this post'] + \
|
|
||||||
' |" title="' + translate['Delete this post'] + \
|
|
||||||
'" src="/' + iconsPath + '/delete.png"/></a>\n'
|
|
||||||
|
|
||||||
# benchmark 13.1
|
# benchmark 13.1
|
||||||
if enableTimingLog:
|
if enableTimingLog:
|
||||||
|
@ -1224,29 +1276,8 @@ def individualPostAsHtml(allowDownloads: bool,
|
||||||
replyStr, announceStr, likeStr,
|
replyStr, announceStr, likeStr,
|
||||||
bookmarkStr, deleteStr, muteStr)
|
bookmarkStr, deleteStr, muteStr)
|
||||||
|
|
||||||
publishedStr = ''
|
publishedStr = \
|
||||||
if postJsonObject['object'].get('published'):
|
getPublishedDateStr(postJsonObject, showPublishedDateOnly)
|
||||||
publishedStr = postJsonObject['object']['published']
|
|
||||||
if '.' not in publishedStr:
|
|
||||||
if '+' not in publishedStr:
|
|
||||||
datetimeObject = \
|
|
||||||
datetime.strptime(publishedStr, "%Y-%m-%dT%H:%M:%SZ")
|
|
||||||
else:
|
|
||||||
datetimeObject = \
|
|
||||||
datetime.strptime(publishedStr.split('+')[0] + 'Z',
|
|
||||||
"%Y-%m-%dT%H:%M:%SZ")
|
|
||||||
else:
|
|
||||||
publishedStr = \
|
|
||||||
publishedStr.replace('T', ' ').split('.')[0]
|
|
||||||
datetimeObject = parse(publishedStr)
|
|
||||||
if not showPublishedDateOnly:
|
|
||||||
publishedStr = datetimeObject.strftime("%a %b %d, %H:%M")
|
|
||||||
else:
|
|
||||||
publishedStr = datetimeObject.strftime("%a %b %d")
|
|
||||||
# if the post has replies then append a symbol to indicate this
|
|
||||||
if postJsonObject.get('hasReplies'):
|
|
||||||
if postJsonObject['hasReplies'] is True:
|
|
||||||
publishedStr = '[' + publishedStr + ']'
|
|
||||||
|
|
||||||
# benchmark 15
|
# benchmark 15
|
||||||
if enableTimingLog:
|
if enableTimingLog:
|
||||||
|
|
Loading…
Reference in New Issue