diff --git a/newswire.py b/newswire.py index d0da7bb3..0bad590f 100644 --- a/newswire.py +++ b/newswire.py @@ -215,11 +215,12 @@ def loadHashtagCategories(baseDir: str, language: str) -> None: with open(hashtagCategoriesFilename, 'r') as fp: xmlStr = fp.read() - xml2StrToHashtagCategories(baseDir, xmlStr, 1024) + xml2StrToHashtagCategories(baseDir, xmlStr, 1024, True) def xml2StrToHashtagCategories(baseDir: str, xmlStr: str, - maxCategoriesFeedItemSizeKb: int) -> None: + maxCategoriesFeedItemSizeKb: int, + force=False) -> None: """Updates hashtag categories based upon an rss feed """ rssItems = xmlStr.split('') @@ -253,7 +254,7 @@ def xml2StrToHashtagCategories(baseDir: str, xmlStr: str, hashtagList = hashtagListStr.split(' ') if not isBlockedHashtag(baseDir, categoryStr): for hashtag in hashtagList: - setHashtagCategory(baseDir, hashtag, categoryStr) + setHashtagCategory(baseDir, hashtag, categoryStr, force) def xml2StrToDict(baseDir: str, domain: str, xmlStr: str, diff --git a/utils.py b/utils.py index 414f46bd..4a7b16e7 100644 --- a/utils.py +++ b/utils.py @@ -112,23 +112,29 @@ def validHashtagCategory(category: str) -> bool: return True -def setHashtagCategory(baseDir: str, hashtag: str, category: str) -> bool: +def setHashtagCategory(baseDir: str, hashtag: str, category: str, + force=False) -> bool: """Sets the category for the hashtag """ if not validHashtagCategory(category): return False - hashtagFilename = baseDir + '/tags/' + hashtag + '.txt' - if not os.path.isfile(hashtagFilename): - hashtag = hashtag.title() + if not force: hashtagFilename = baseDir + '/tags/' + hashtag + '.txt' if not os.path.isfile(hashtagFilename): - hashtag = hashtag.upper() + hashtag = hashtag.title() hashtagFilename = baseDir + '/tags/' + hashtag + '.txt' if not os.path.isfile(hashtagFilename): - return False + hashtag = hashtag.upper() + hashtagFilename = baseDir + '/tags/' + hashtag + '.txt' + if not os.path.isfile(hashtagFilename): + return False categoryFilename = baseDir + '/tags/' + hashtag + '.category' + if force: + # don't overwrite any existing categories + if os.path.isfile(categoryFilename): + return False with open(categoryFilename, 'w+') as fp: fp.write(category) updateHashtagCategories(baseDir)