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

View File

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

View File

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

View File

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