Avoid circular reference when generating hashtag categories

merge-requests/30/head
Bob Mottram 2021-08-15 12:39:20 +01:00
parent 6cf76ccc5f
commit 970f13c7a3
4 changed files with 12 additions and 7 deletions

View File

@ -86,7 +86,7 @@ def getHashtagCategories(baseDir: str,
return hashtagCategories return hashtagCategories
def _updateHashtagCategories(baseDir: str) -> None: def updateHashtagCategories(baseDir: str) -> None:
"""Regenerates the list of hashtag categories """Regenerates the list of hashtag categories
""" """
categoryListFilename = baseDir + '/accounts/categoryList.txt' categoryListFilename = baseDir + '/accounts/categoryList.txt'
@ -129,7 +129,7 @@ def _validHashtagCategory(category: str) -> bool:
def setHashtagCategory(baseDir: str, hashtag: str, category: str, def setHashtagCategory(baseDir: str, hashtag: str, category: str,
force: bool = False) -> bool: update: bool, force: bool = False) -> bool:
"""Sets the category for the hashtag """Sets the category for the hashtag
""" """
if not _validHashtagCategory(category): if not _validHashtagCategory(category):
@ -155,7 +155,8 @@ def setHashtagCategory(baseDir: str, hashtag: str, category: str,
return False return False
with open(categoryFilename, 'w+') as fp: with open(categoryFilename, 'w+') as fp:
fp.write(category) fp.write(category)
_updateHashtagCategories(baseDir) if update:
updateHashtagCategories(baseDir)
return True return True
return False return False

View File

@ -223,6 +223,7 @@ from shares import sharesCatalogEndpoint
from shares import sharesCatalogAccountEndpoint from shares import sharesCatalogAccountEndpoint
from shares import sharesCatalogCSVEndpoint from shares import sharesCatalogCSVEndpoint
from categories import setHashtagCategory from categories import setHashtagCategory
from categories import updateHashtagCategories
from languages import getActorLanguages from languages import getActorLanguages
from languages import setActorLanguages from languages import setActorLanguages
from utils import localActorUrl from utils import localActorUrl
@ -3808,7 +3809,7 @@ class PubServer(BaseHTTPRequestHandler):
categoryStr = fields['hashtagCategory'].lower() categoryStr = fields['hashtagCategory'].lower()
if not isBlockedHashtag(baseDir, categoryStr) and \ if not isBlockedHashtag(baseDir, categoryStr) and \
not isFiltered(baseDir, nickname, domain, categoryStr): not isFiltered(baseDir, nickname, domain, categoryStr):
setHashtagCategory(baseDir, hashtag, categoryStr) setHashtagCategory(baseDir, hashtag, categoryStr, False)
else: else:
categoryFilename = baseDir + '/tags/' + hashtag + '.category' categoryFilename = baseDir + '/tags/' + hashtag + '.category'
if os.path.isfile(categoryFilename): if os.path.isfile(categoryFilename):
@ -4421,7 +4422,7 @@ class PubServer(BaseHTTPRequestHandler):
skillName, int(skillValue)) skillName, int(skillValue))
skillsStr = self.server.translate['Skills'] skillsStr = self.server.translate['Skills']
setHashtagCategory(baseDir, skillName, setHashtagCategory(baseDir, skillName,
skillsStr.lower()) skillsStr.lower(), False)
skillCtr += 1 skillCtr += 1
if noOfActorSkills(actorJson) != \ if noOfActorSkills(actorJson) != \
actorSkillsCtr: actorSkillsCtr:
@ -16104,6 +16105,8 @@ def runDaemon(lowBandwidth: bool,
httpd.restartInboxQueueInProgress = False httpd.restartInboxQueueInProgress = False
httpd.restartInboxQueue = False httpd.restartInboxQueue = False
updateHashtagCategories(baseDir)
print('Adding hashtag categories for language ' + httpd.systemLanguage) print('Adding hashtag categories for language ' + httpd.systemLanguage)
loadHashtagCategories(baseDir, httpd.systemLanguage) loadHashtagCategories(baseDir, httpd.systemLanguage)

View File

@ -156,7 +156,7 @@ def storeHashTags(baseDir: str, nickname: str, postJsonObject: {}) -> None:
categoryStr = \ categoryStr = \
guessHashtagCategory(tagName, hashtagCategories) guessHashtagCategory(tagName, hashtagCategories)
if categoryStr: if categoryStr:
setHashtagCategory(baseDir, tagName, categoryStr) setHashtagCategory(baseDir, tagName, categoryStr, False)
def _inboxStorePostToHtmlCache(recentPostsCache: {}, maxRecentPosts: int, def _inboxStorePostToHtmlCache(recentPostsCache: {}, maxRecentPosts: int,

View File

@ -293,7 +293,8 @@ def _xml2StrToHashtagCategories(baseDir: str, xmlStr: str,
hashtagList = hashtagListStr.split(' ') hashtagList = hashtagListStr.split(' ')
if not isBlockedHashtag(baseDir, categoryStr): if not isBlockedHashtag(baseDir, categoryStr):
for hashtag in hashtagList: for hashtag in hashtagList:
setHashtagCategory(baseDir, hashtag, categoryStr, force) setHashtagCategory(baseDir, hashtag, categoryStr,
False, force)
def _xml2StrToDict(baseDir: str, domain: str, xmlStr: str, def _xml2StrToDict(baseDir: str, domain: str, xmlStr: str,