diff --git a/utils.py b/utils.py index 8e0a76df4..6e291f1ae 100644 --- a/utils.py +++ b/utils.py @@ -1977,54 +1977,56 @@ def undoAnnounceCollectionEntry(recentPostsCache: {}, shares of posts, not shares of physical objects. """ postJsonObject = loadJson(postFilename) - if postJsonObject: - # remove any cached version of this announce so that the announce - # icon is changed - nickname = getNicknameFromActor(actor) - cachedPostFilename = getCachedPostFilename(baseDir, nickname, domain, - postJsonObject) - if cachedPostFilename: - if os.path.isfile(cachedPostFilename): - os.remove(cachedPostFilename) - removePostFromCache(postJsonObject, recentPostsCache) + if not postJsonObject: + return + # remove any cached version of this announce so that the announce + # icon is changed + nickname = getNicknameFromActor(actor) + cachedPostFilename = getCachedPostFilename(baseDir, nickname, domain, + postJsonObject) + if cachedPostFilename: + if os.path.isfile(cachedPostFilename): + os.remove(cachedPostFilename) + removePostFromCache(postJsonObject, recentPostsCache) - if not postJsonObject.get('type'): - return - if postJsonObject['type'] != 'Create': - return - if not hasObjectDict(postJsonObject): - if debug: - pprint(postJsonObject) - print('DEBUG: post has no object') - return - if not postJsonObject['object'].get('shares'): - return - if not postJsonObject['object']['shares'].get('items'): - return - totalItems = 0 - if postJsonObject['object']['shares'].get('totalItems'): - totalItems = postJsonObject['object']['shares']['totalItems'] - itemFound = False - for announceItem in postJsonObject['object']['shares']['items']: - if announceItem.get('actor'): - if announceItem['actor'] == actor: - if debug: - print('DEBUG: Announce was removed for ' + actor) - anIt = announceItem - postJsonObject['object']['shares']['items'].remove(anIt) - itemFound = True - break - if itemFound: - if totalItems == 1: + if not postJsonObject.get('type'): + return + if postJsonObject['type'] != 'Create': + return + if not hasObjectDict(postJsonObject): + if debug: + pprint(postJsonObject) + print('DEBUG: post has no object') + return + if not postJsonObject['object'].get('shares'): + return + if not postJsonObject['object']['shares'].get('items'): + return + totalItems = 0 + if postJsonObject['object']['shares'].get('totalItems'): + totalItems = postJsonObject['object']['shares']['totalItems'] + itemFound = False + for announceItem in postJsonObject['object']['shares']['items']: + if announceItem.get('actor'): + if announceItem['actor'] == actor: if debug: - print('DEBUG: shares (announcements) ' + - 'was removed from post') - del postJsonObject['object']['shares'] - else: - itlen = len(postJsonObject['object']['shares']['items']) - postJsonObject['object']['shares']['totalItems'] = itlen + print('DEBUG: Announce was removed for ' + actor) + anIt = announceItem + postJsonObject['object']['shares']['items'].remove(anIt) + itemFound = True + break + if not itemFound: + return + if totalItems == 1: + if debug: + print('DEBUG: shares (announcements) ' + + 'was removed from post') + del postJsonObject['object']['shares'] + else: + itlen = len(postJsonObject['object']['shares']['items']) + postJsonObject['object']['shares']['totalItems'] = itlen - saveJson(postJsonObject, postFilename) + saveJson(postJsonObject, postFilename) def updateAnnounceCollection(recentPostsCache: {},