forked from indymedia/epicyon
Handle post cache for undo like
parent
ae150ca710
commit
0aedab61fb
|
@ -658,7 +658,8 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
|
|
||||||
if self.server.debug:
|
if self.server.debug:
|
||||||
print('DEBUG: handle any like requests')
|
print('DEBUG: handle any like requests')
|
||||||
outboxLike(self.server.baseDir,self.server.httpPrefix, \
|
outboxLike(self.server.recentPostsCache, \
|
||||||
|
self.server.baseDir,self.server.httpPrefix, \
|
||||||
self.postToNickname,self.server.domain,self.server.port, \
|
self.postToNickname,self.server.domain,self.server.port, \
|
||||||
messageJson,self.server.debug)
|
messageJson,self.server.debug)
|
||||||
if self.server.debug:
|
if self.server.debug:
|
||||||
|
|
10
inbox.py
10
inbox.py
|
@ -827,7 +827,8 @@ def receiveUpdate(session,baseDir: str, \
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def receiveLike(session,handle: str,isGroup: bool,baseDir: str, \
|
def receiveLike(recentPostsCache: {}, \
|
||||||
|
session,handle: str,isGroup: bool,baseDir: str, \
|
||||||
httpPrefix: str,domain :str,port: int, \
|
httpPrefix: str,domain :str,port: int, \
|
||||||
sendThreads: [],postLog: [],cachedWebfingers: {}, \
|
sendThreads: [],postLog: [],cachedWebfingers: {}, \
|
||||||
personCache: {},messageJson: {},federationList: [], \
|
personCache: {},messageJson: {},federationList: [], \
|
||||||
|
@ -874,7 +875,9 @@ def receiveLike(session,handle: str,isGroup: bool,baseDir: str, \
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: liked post found in inbox')
|
print('DEBUG: liked post found in inbox')
|
||||||
|
|
||||||
updateLikesCollection(baseDir,postFilename,messageJson['object'],messageJson['actor'],domain,debug)
|
updateLikesCollection(recentPostsCache,baseDir,postFilename, \
|
||||||
|
messageJson['object'], \
|
||||||
|
messageJson['actor'],domain,debug)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def receiveUndoLike(session,handle: str,isGroup: bool,baseDir: str, \
|
def receiveUndoLike(session,handle: str,isGroup: bool,baseDir: str, \
|
||||||
|
@ -1649,7 +1652,8 @@ def inboxAfterCapabilities(recentPostsCache: {},maxRecentPosts: int, \
|
||||||
|
|
||||||
isGroup=groupHandle(baseDir,handle)
|
isGroup=groupHandle(baseDir,handle)
|
||||||
|
|
||||||
if receiveLike(session,handle,isGroup, \
|
if receiveLike(recentPostsCache, \
|
||||||
|
session,handle,isGroup, \
|
||||||
baseDir,httpPrefix, \
|
baseDir,httpPrefix, \
|
||||||
domain,port, \
|
domain,port, \
|
||||||
sendThreads,postLog, \
|
sendThreads,postLog, \
|
||||||
|
|
34
like.py
34
like.py
|
@ -102,7 +102,8 @@ def noOfLikes(postJsonObject: {}) -> int:
|
||||||
postJsonObject['object']['likes']['totalItems']=0
|
postJsonObject['object']['likes']['totalItems']=0
|
||||||
return len(postJsonObject['object']['likes']['items'])
|
return len(postJsonObject['object']['likes']['items'])
|
||||||
|
|
||||||
def updateLikesCollection(baseDir: str,postFilename: str, \
|
def updateLikesCollection(recentPostsCache: {}, \
|
||||||
|
baseDir: str,postFilename: str, \
|
||||||
objectUrl: str, \
|
objectUrl: str, \
|
||||||
actor: str,domain: str,debug: bool) -> None:
|
actor: str,domain: str,debug: bool) -> None:
|
||||||
"""Updates the likes collection within a post
|
"""Updates the likes collection within a post
|
||||||
|
@ -115,6 +116,13 @@ def updateLikesCollection(baseDir: str,postFilename: str, \
|
||||||
getCachedPostFilename(baseDir,nickname,domain,postJsonObject)
|
getCachedPostFilename(baseDir,nickname,domain,postJsonObject)
|
||||||
if os.path.isfile(cachedPostFilename):
|
if os.path.isfile(cachedPostFilename):
|
||||||
os.remove(cachedPostFilename)
|
os.remove(cachedPostFilename)
|
||||||
|
# if the post exists in the recent posts cache then remove it
|
||||||
|
if postJsonObject.get('id') and recentPostsCache.get('index'):
|
||||||
|
postId=postJsonObject['id'].replace('/activity','').replace('/','#')
|
||||||
|
if postId in recentPostsCache['index']:
|
||||||
|
del recentPostsCache['json'][postId]
|
||||||
|
del recentPostsCache['html'][postId]
|
||||||
|
recentPostsCache['index'].remove(postId)
|
||||||
|
|
||||||
if not postJsonObject.get('object'):
|
if not postJsonObject.get('object'):
|
||||||
if debug:
|
if debug:
|
||||||
|
@ -157,7 +165,8 @@ def updateLikesCollection(baseDir: str,postFilename: str, \
|
||||||
pprint(postJsonObject)
|
pprint(postJsonObject)
|
||||||
saveJson(postJsonObject,postFilename)
|
saveJson(postJsonObject,postFilename)
|
||||||
|
|
||||||
def like(session,baseDir: str,federationList: [], \
|
def like(recentPostsCache: {}, \
|
||||||
|
session,baseDir: str,federationList: [], \
|
||||||
nickname: str,domain: str,port: int, \
|
nickname: str,domain: str,port: int, \
|
||||||
ccList: [],httpPrefix: str, \
|
ccList: [],httpPrefix: str, \
|
||||||
objectUrl: str,actorLiked: str, \
|
objectUrl: str,actorLiked: str, \
|
||||||
|
@ -216,7 +225,8 @@ def like(session,baseDir: str,federationList: [], \
|
||||||
print('DEBUG: like objectUrl: '+objectUrl)
|
print('DEBUG: like objectUrl: '+objectUrl)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
updateLikesCollection(baseDir,postFilename,objectUrl, \
|
updateLikesCollection(recentPostsCache, \
|
||||||
|
baseDir,postFilename,objectUrl, \
|
||||||
newLikeJson['actor'],domain,debug)
|
newLikeJson['actor'],domain,debug)
|
||||||
|
|
||||||
sendSignedJson(newLikeJson,session,baseDir, \
|
sendSignedJson(newLikeJson,session,baseDir, \
|
||||||
|
@ -257,12 +267,14 @@ def likePost(session,baseDir: str,federationList: [], \
|
||||||
httpPrefix+'://'+likeDomain+':'+ \
|
httpPrefix+'://'+likeDomain+':'+ \
|
||||||
str(likePort)+'/users/'+likeNickname
|
str(likePort)+'/users/'+likeNickname
|
||||||
|
|
||||||
return like(session,baseDir,federationList,nickname,domain,port, \
|
return like(recentPostsCache, \
|
||||||
|
session,baseDir,federationList,nickname,domain,port, \
|
||||||
ccList,httpPrefix,objectUrl,actorLiked,clientToServer, \
|
ccList,httpPrefix,objectUrl,actorLiked,clientToServer, \
|
||||||
sendThreads,postLog,personCache,cachedWebfingers, \
|
sendThreads,postLog,personCache,cachedWebfingers, \
|
||||||
debug,projectVersion)
|
debug,projectVersion)
|
||||||
|
|
||||||
def undolike(session,baseDir: str,federationList: [], \
|
def undolike(recentPostsCache: {}, \
|
||||||
|
session,baseDir: str,federationList: [], \
|
||||||
nickname: str,domain: str,port: int, \
|
nickname: str,domain: str,port: int, \
|
||||||
ccList: [],httpPrefix: str, \
|
ccList: [],httpPrefix: str, \
|
||||||
objectUrl: str,actorLiked: str, \
|
objectUrl: str,actorLiked: str, \
|
||||||
|
@ -337,7 +349,8 @@ def undolike(session,baseDir: str,federationList: [], \
|
||||||
|
|
||||||
return newUndoLikeJson
|
return newUndoLikeJson
|
||||||
|
|
||||||
def undoLikePost(session,baseDir: str,federationList: [], \
|
def undoLikePost(recentPostsCache: {}, \
|
||||||
|
session,baseDir: str,federationList: [], \
|
||||||
nickname: str,domain: str,port: int,httpPrefix: str, \
|
nickname: str,domain: str,port: int,httpPrefix: str, \
|
||||||
likeNickname: str,likeDomain: str,likePort: int, \
|
likeNickname: str,likeDomain: str,likePort: int, \
|
||||||
ccList: [], \
|
ccList: [], \
|
||||||
|
@ -365,7 +378,8 @@ def undoLikePost(session,baseDir: str,federationList: [], \
|
||||||
httpPrefix+'://'+likeDomain+':'+ \
|
httpPrefix+'://'+likeDomain+':'+ \
|
||||||
str(likePort)+'/users/'+likeNickname
|
str(likePort)+'/users/'+likeNickname
|
||||||
|
|
||||||
return undoLike(session,baseDir,federationList,nickname,domain,port, \
|
return undoLike(recentPostsCache, \
|
||||||
|
session,baseDir,federationList,nickname,domain,port, \
|
||||||
ccList,httpPrefix,objectUrl,clientToServer, \
|
ccList,httpPrefix,objectUrl,clientToServer, \
|
||||||
sendThreads,postLog,personCache,cachedWebfingers,debug)
|
sendThreads,postLog,personCache,cachedWebfingers,debug)
|
||||||
|
|
||||||
|
@ -523,7 +537,8 @@ def sendUndoLikeViaServer(baseDir: str,session, \
|
||||||
|
|
||||||
return newUndoLikeJson
|
return newUndoLikeJson
|
||||||
|
|
||||||
def outboxLike(baseDir: str,httpPrefix: str, \
|
def outboxLike(recentPostsCache: {}, \
|
||||||
|
baseDir: str,httpPrefix: str, \
|
||||||
nickname: str,domain: str,port: int, \
|
nickname: str,domain: str,port: int, \
|
||||||
messageJson: {},debug: bool) -> None:
|
messageJson: {},debug: bool) -> None:
|
||||||
""" When a like request is received by the outbox from c2s
|
""" When a like request is received by the outbox from c2s
|
||||||
|
@ -556,7 +571,8 @@ def outboxLike(baseDir: str,httpPrefix: str, \
|
||||||
print('DEBUG: c2s like post not found in inbox or outbox')
|
print('DEBUG: c2s like post not found in inbox or outbox')
|
||||||
print(messageId)
|
print(messageId)
|
||||||
return True
|
return True
|
||||||
updateLikesCollection(baseDir,postFilename,messageId, \
|
updateLikesCollection(recentPostsCache, \
|
||||||
|
baseDir,postFilename,messageId, \
|
||||||
messageJson['actor'],domain,debug)
|
messageJson['actor'],domain,debug)
|
||||||
if debug:
|
if debug:
|
||||||
print('DEBUG: post liked via c2s - '+postFilename)
|
print('DEBUG: post liked via c2s - '+postFilename)
|
||||||
|
|
2
tests.py
2
tests.py
|
@ -470,7 +470,7 @@ def testPostMessageBetweenServers():
|
||||||
outboxPostFilename=outboxPath+'/'+name
|
outboxPostFilename=outboxPath+'/'+name
|
||||||
assert statusNumber>0
|
assert statusNumber>0
|
||||||
assert outboxPostFilename
|
assert outboxPostFilename
|
||||||
assert likePost(sessionBob,bobDir,federationList, \
|
assert likePost({},sessionBob,bobDir,federationList, \
|
||||||
'bob',bobDomain,bobPort,httpPrefix, \
|
'bob',bobDomain,bobPort,httpPrefix, \
|
||||||
'alice',aliceDomain,alicePort,[], \
|
'alice',aliceDomain,alicePort,[], \
|
||||||
statusNumber,False,bobSendThreads,bobPostLog, \
|
statusNumber,False,bobSendThreads,bobPostLog, \
|
||||||
|
|
Loading…
Reference in New Issue