main
Bob Mottram 2021-10-17 18:13:49 +01:00
commit b93c82584f
5 changed files with 37 additions and 27 deletions

View File

@ -7372,9 +7372,11 @@ class PubServer(BaseHTTPRequestHandler):
getOriginalPostFromAnnounceUrl(likeUrl, baseDir, getOriginalPostFromAnnounceUrl(likeUrl, baseDir,
self.postToNickname, domain) self.postToNickname, domain)
likeUrl2 = likeUrl likeUrl2 = likeUrl
likedPostFilename = origFilename
if origActor and origPostUrl: if origActor and origPostUrl:
actorLiked = origActor actorLiked = origActor
likeUrl2 = origPostUrl likeUrl2 = origPostUrl
likedPostFilename = None
likeJson = { likeJson = {
"@context": "https://www.w3.org/ns/activitystreams", "@context": "https://www.w3.org/ns/activitystreams",
@ -7389,9 +7391,9 @@ class PubServer(BaseHTTPRequestHandler):
print('Locating liked post ' + likeUrl) print('Locating liked post ' + likeUrl)
# directly like the post file # directly like the post file
likedPostJson = None if not likedPostFilename:
likedPostFilename = \ likedPostFilename = \
locatePost(baseDir, self.postToNickname, domain, likeUrl) locatePost(baseDir, self.postToNickname, domain, likeUrl)
if likedPostFilename: if likedPostFilename:
recentPostsCache = self.server.recentPostsCache recentPostsCache = self.server.recentPostsCache
likedPostJson = loadJson(likedPostFilename, 0, 1) likedPostJson = loadJson(likedPostFilename, 0, 1)
@ -7399,7 +7401,7 @@ class PubServer(BaseHTTPRequestHandler):
updateLikesCollection(recentPostsCache, updateLikesCollection(recentPostsCache,
baseDir, likedPostFilename, baseDir, likedPostFilename,
likeUrl, likeActor, self.postToNickname, likeUrl, likeActor, self.postToNickname,
domain, debug) domain, debug, likedPostJson)
likeUrl = origPostUrl likeUrl = origPostUrl
likedPostFilename = origFilename likedPostFilename = origFilename
if debug: if debug:
@ -7407,7 +7409,7 @@ class PubServer(BaseHTTPRequestHandler):
updateLikesCollection(recentPostsCache, updateLikesCollection(recentPostsCache,
baseDir, likedPostFilename, likeUrl, baseDir, likedPostFilename, likeUrl,
likeActor, self.postToNickname, domain, likeActor, self.postToNickname, domain,
debug) debug, None)
if debug: if debug:
print('Regenerating html post for changed likes collection') print('Regenerating html post for changed likes collection')
# clear the icon from the cache so that it gets updated # clear the icon from the cache so that it gets updated
@ -7536,9 +7538,11 @@ class PubServer(BaseHTTPRequestHandler):
getOriginalPostFromAnnounceUrl(likeUrl, baseDir, getOriginalPostFromAnnounceUrl(likeUrl, baseDir,
self.postToNickname, domain) self.postToNickname, domain)
likeUrl2 = likeUrl likeUrl2 = likeUrl
likedPostFilename = origFilename
if origActor and origPostUrl: if origActor and origPostUrl:
actorLiked = origActor actorLiked = origActor
likeUrl2 = origPostUrl likeUrl2 = origPostUrl
likedPostFilename = None
undoLikeJson = { undoLikeJson = {
"@context": "https://www.w3.org/ns/activitystreams", "@context": "https://www.w3.org/ns/activitystreams",
@ -7557,17 +7561,17 @@ class PubServer(BaseHTTPRequestHandler):
self._postToOutbox(undoLikeJson, self.server.projectVersion, None) self._postToOutbox(undoLikeJson, self.server.projectVersion, None)
# directly undo the like within the post file # directly undo the like within the post file
likedPostJson = None if not likedPostFilename:
likedPostFilename = locatePost(baseDir, likedPostFilename = locatePost(baseDir, self.postToNickname,
self.postToNickname, domain, likeUrl)
domain, likeUrl)
if likedPostFilename: if likedPostFilename:
recentPostsCache = self.server.recentPostsCache recentPostsCache = self.server.recentPostsCache
likedPostJson = loadJson(likedPostFilename, 0, 1) likedPostJson = loadJson(likedPostFilename, 0, 1)
if origFilename and origPostUrl: if origFilename and origPostUrl:
undoLikesCollectionEntry(recentPostsCache, undoLikesCollectionEntry(recentPostsCache,
baseDir, likedPostFilename, baseDir, likedPostFilename,
likeUrl, undoActor, domain, debug) likeUrl, undoActor, domain, debug,
likedPostJson)
likeUrl = origPostUrl likeUrl = origPostUrl
likedPostFilename = origFilename likedPostFilename = origFilename
if debug: if debug:
@ -7575,7 +7579,7 @@ class PubServer(BaseHTTPRequestHandler):
undoLikesCollectionEntry(recentPostsCache, undoLikesCollectionEntry(recentPostsCache,
baseDir, baseDir,
likedPostFilename, likeUrl, likedPostFilename, likeUrl,
undoActor, domain, debug) undoActor, domain, debug, None)
if debug: if debug:
print('Regenerating html post for changed likes collection') print('Regenerating html post for changed likes collection')
if likedPostJson: if likedPostJson:

View File

@ -940,7 +940,7 @@ def _receiveLike(recentPostsCache: {},
likeActor, postLikedId) likeActor, postLikedId)
updateLikesCollection(recentPostsCache, baseDir, postFilename, updateLikesCollection(recentPostsCache, baseDir, postFilename,
postLikedId, likeActor, postLikedId, likeActor,
handleName, domain, debug) handleName, domain, debug, None)
# regenerate the html # regenerate the html
likedPostJson = loadJson(postFilename, 0, 1) likedPostJson = loadJson(postFilename, 0, 1)
if likedPostJson: if likedPostJson:
@ -961,7 +961,7 @@ def _receiveLike(recentPostsCache: {},
postLikedId, postLikedId,
likeActor, likeActor,
handleName, handleName,
domain, debug) domain, debug, None)
if likedPostJson: if likedPostJson:
if debug: if debug:
cachedPostFilename = \ cachedPostFilename = \
@ -1052,7 +1052,7 @@ def _receiveUndoLike(recentPostsCache: {},
likeActor = messageJson['actor'] likeActor = messageJson['actor']
postLikedId = messageJson['object'] postLikedId = messageJson['object']
undoLikesCollectionEntry(recentPostsCache, baseDir, postFilename, undoLikesCollectionEntry(recentPostsCache, baseDir, postFilename,
postLikedId, likeActor, domain, debug) postLikedId, likeActor, domain, debug, None)
# regenerate the html # regenerate the html
likedPostJson = loadJson(postFilename, 0, 1) likedPostJson = loadJson(postFilename, 0, 1)
if likedPostJson: if likedPostJson:
@ -1069,7 +1069,8 @@ def _receiveUndoLike(recentPostsCache: {},
postFilename = announceLikedFilename postFilename = announceLikedFilename
undoLikesCollectionEntry(recentPostsCache, baseDir, undoLikesCollectionEntry(recentPostsCache, baseDir,
postFilename, postLikedId, postFilename, postLikedId,
likeActor, domain, debug) likeActor, domain, debug,
None)
if likedPostJson: if likedPostJson:
if debug: if debug:
cachedPostFilename = \ cachedPostFilename = \

12
like.py
View File

@ -129,7 +129,7 @@ def _like(recentPostsCache: {},
updateLikesCollection(recentPostsCache, updateLikesCollection(recentPostsCache,
baseDir, postFilename, objectUrl, baseDir, postFilename, objectUrl,
newLikeJson['actor'], newLikeJson['actor'],
nickname, domain, debug) nickname, domain, debug, None)
sendSignedJson(newLikeJson, session, baseDir, sendSignedJson(newLikeJson, session, baseDir,
nickname, domain, port, nickname, domain, port,
@ -368,7 +368,7 @@ def outboxLike(recentPostsCache: {},
updateLikesCollection(recentPostsCache, updateLikesCollection(recentPostsCache,
baseDir, postFilename, messageId, baseDir, postFilename, messageId,
messageJson['actor'], messageJson['actor'],
nickname, domain, debug) nickname, domain, debug, None)
if debug: if debug:
print('DEBUG: post liked via c2s - ' + postFilename) print('DEBUG: post liked via c2s - ' + postFilename)
@ -404,7 +404,7 @@ def outboxUndoLike(recentPostsCache: {},
return True return True
undoLikesCollectionEntry(recentPostsCache, baseDir, postFilename, undoLikesCollectionEntry(recentPostsCache, baseDir, postFilename,
messageId, messageJson['actor'], messageId, messageJson['actor'],
domain, debug) domain, debug, None)
if debug: if debug:
print('DEBUG: post undo liked via c2s - ' + postFilename) print('DEBUG: post undo liked via c2s - ' + postFilename)
@ -412,10 +412,12 @@ def outboxUndoLike(recentPostsCache: {},
def updateLikesCollection(recentPostsCache: {}, def updateLikesCollection(recentPostsCache: {},
baseDir: str, postFilename: str, baseDir: str, postFilename: str,
objectUrl: str, actor: str, objectUrl: str, actor: str,
nickname: str, domain: str, debug: bool) -> None: nickname: str, domain: str, debug: bool,
postJsonObject: {}) -> None:
"""Updates the likes collection within a post """Updates the likes collection within a post
""" """
postJsonObject = loadJson(postFilename) if not postJsonObject:
postJsonObject = loadJson(postFilename)
if not postJsonObject: if not postJsonObject:
return return

View File

@ -5053,15 +5053,15 @@ def getOriginalPostFromAnnounceUrl(announceUrl: str, baseDir: str,
return None, None, None return None, None, None
announcePostJson = loadJson(postFilename, 0, 1) announcePostJson = loadJson(postFilename, 0, 1)
if not announcePostJson: if not announcePostJson:
return None, None, None return None, None, postFilename
if not announcePostJson.get('type'): if not announcePostJson.get('type'):
return None, None, None return None, None, postFilename
if announcePostJson['type'] != 'Announce': if announcePostJson['type'] != 'Announce':
return None, None, None return None, None, postFilename
if not announcePostJson.get('object'): if not announcePostJson.get('object'):
return None, None, None return None, None, postFilename
if not isinstance(announcePostJson['object'], str): if not isinstance(announcePostJson['object'], str):
return None, None, None return None, None, postFilename
actor = url = None actor = url = None
# do we have the original post? # do we have the original post?
origPostId = announcePostJson['object'] origPostId = announcePostJson['object']
@ -5089,4 +5089,5 @@ def getOriginalPostFromAnnounceUrl(announceUrl: str, baseDir: str,
origPostId.split('/' + origNick + '/')[0] + \ origPostId.split('/' + origNick + '/')[0] + \
'/' + origNick '/' + origNick
url = origPostId url = origPostId
return actor, url, origFilename return actor, url, origFilename

View File

@ -2161,10 +2161,12 @@ def getFileCaseInsensitive(path: str) -> str:
def undoLikesCollectionEntry(recentPostsCache: {}, def undoLikesCollectionEntry(recentPostsCache: {},
baseDir: str, postFilename: str, objectUrl: str, baseDir: str, postFilename: str, objectUrl: str,
actor: str, domain: str, debug: bool) -> None: actor: str, domain: str, debug: bool,
postJsonObject: {}) -> None:
"""Undoes a like for a particular actor """Undoes a like for a particular actor
""" """
postJsonObject = loadJson(postFilename) if not postJsonObject:
postJsonObject = loadJson(postFilename)
if not postJsonObject: if not postJsonObject:
return return
# remove any cached version of this post so that the # remove any cached version of this post so that the