Update post cache when receiving question updates

main
Bob Mottram 2019-11-25 14:05:59 +00:00
parent 6c10a30069
commit 91058ea30f
2 changed files with 21 additions and 3 deletions

View File

@ -230,6 +230,7 @@ class PubServer(BaseHTTPRequestHandler):
getCachedPostFilename(self.server.baseDir, \ getCachedPostFilename(self.server.baseDir, \
nickname, \ nickname, \
self.server.domain,messageJson) self.server.domain,messageJson)
if cachedPostFilename:
if os.path.isfile(cachedPostFilename): if os.path.isfile(cachedPostFilename):
os.remove(cachedPostFilename) os.remove(cachedPostFilename)
# remove from memory cache # remove from memory cache

View File

@ -12,6 +12,8 @@ import datetime
import time import time
import json import json
from shutil import copyfile from shutil import copyfile
from utils import getCachedPostFilename
from utils import removePostFromCache
from utils import urlPermitted from utils import urlPermitted
from utils import createInboxQueueDir from utils import createInboxQueueDir
from utils import getStatusNumber from utils import getStatusNumber
@ -741,7 +743,7 @@ def receiveUpdate(session,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: [], \
debug : bool) -> bool: nickname: str,debug : bool) -> bool:
"""Receives an Update activity within the POST section of HTTPServer """Receives an Update activity within the POST section of HTTPServer
""" """
if messageJson['type']!='Update': if messageJson['type']!='Update':
@ -769,6 +771,20 @@ def receiveUpdate(session,baseDir: str, \
print('DEBUG: "users" or "profile" missing from actor in '+messageJson['type']) print('DEBUG: "users" or "profile" missing from actor in '+messageJson['type'])
return False return False
if messageJson['object']['type']=='Question':
# ensure that the cached post is removed if it exists, so
# that it then will be recreated
cachedPostFilename= \
getCachedPostFilename(baseDir,nickname,domain,messageJson)
if cachedPostFilename:
if os.path.isfile(cachedPostFilename):
os.remove(cachedPostFilename)
# remove from memory cache
removePostFromCache(messageJson,self.server.recentPostsCache)
if debug:
print('DEBUG: Question update was received')
return True
if messageJson['object']['type']=='Person' or \ if messageJson['object']['type']=='Person' or \
messageJson['object']['type']=='Application' or \ messageJson['object']['type']=='Application' or \
messageJson['object']['type']=='Group' or \ messageJson['object']['type']=='Group' or \
@ -2121,6 +2137,7 @@ def runInboxQueue(recentPostsCache: {},maxRecentPosts: int, \
personCache, \ personCache, \
queueJson['post'], \ queueJson['post'], \
federationList, \ federationList, \
queueJson['postNickname'], \
debug): debug):
if debug: if debug:
print('DEBUG: Update accepted from '+keyId) print('DEBUG: Update accepted from '+keyId)