diff --git a/webinterface.py b/webinterface.py
index a2088f2d..c883364d 100644
--- a/webinterface.py
+++ b/webinterface.py
@@ -5728,15 +5728,23 @@ def htmlCalendar(translate: {},
def htmlHashTagSwarm(baseDir: str, actor: str) -> str:
"""Returns a tag swarm of today's hashtags
"""
- daysSinceEpoch = (datetime.utcnow() - datetime(1970, 1, 1)).days
+ currTime = datetime.utcnow()
+ daysSinceEpoch = (currTime - datetime(1970, 1, 1)).days
+ maxDaysSinceEpoch = (currTime - datetime(1970, 3, 1)).days
daysSinceEpochStr = str(daysSinceEpoch) + ' '
tagSwarm = []
- tagSwarmCtr = []
+ removeHashtags = []
for subdir, dirs, files in os.walk(baseDir + '/tags'):
for f in files:
tagsFilename = os.path.join(baseDir + '/tags', f)
if not os.path.isfile(tagsFilename):
continue
+ lastModifiedDate = os.stat(tagsFilename)
+ fileDaysSinceEpoch = (lastModifiedDate - datetime(1970, 1, 1)).days
+ if fileDaysSinceEpoch < maxDaysSinceEpoch:
+ removeHashtags.append(tagsFilename)
+ continue
+
hashTagName = f.split('.')[0]
if isBlockedHashtag(baseDir, hashTagName):
continue
@@ -5746,12 +5754,13 @@ def htmlHashTagSwarm(baseDir: str, actor: str) -> str:
line = tagsFile.readline()
lineCtr = 1
tagCtr = 0
+ maxLineCtr = 4
while line:
if ' ' not in line:
line = tagsFile.readline()
lineCtr += 1
# don't read too many lines
- if lineCtr > 4:
+ if lineCtr > maxLineCtr:
break
continue
postDaysSinceEpochStr = line.split(' ')[0]
@@ -5759,7 +5768,7 @@ def htmlHashTagSwarm(baseDir: str, actor: str) -> str:
line = tagsFile.readline()
lineCtr += 1
# don't read too many lines
- if lineCtr > 4:
+ if lineCtr > maxLineCtr:
break
continue
postDaysSinceEpoch = int(postDaysSinceEpochStr)
@@ -5769,31 +5778,29 @@ def htmlHashTagSwarm(baseDir: str, actor: str) -> str:
if tagCtr == 0:
tagSwarm.append(hashTagName)
tagCtr += 1
- if tagCtr > 3:
- break
line = tagsFile.readline()
lineCtr += 1
# don't read too many lines
- if lineCtr > 4:
+ if lineCtr > maxLineCtr:
break
- if tagCtr > 0:
- tagSwarmCtr.append(tagCtr)
+ # remove old hashtags
+ for removeFilename in removeHashtags:
+ try:
+ os.remove(removeFilename)
+ except BaseException:
+ pass
+
if not tagSwarm:
return ''
tagSwarm.sort()
tagSwarmStr = ''
ctr = 0
for tagName in tagSwarm:
- if tagSwarmCtr[ctr] < 4:
- tagSwarmStr += \
- '' + tagName + ' '
- else:
- tagSwarmStr += \
- '' + tagName + ' '
+ tagSwarmStr += \
+ '' + tagName + ' '
ctr += 1
tagSwarmHtml = tagSwarmStr.strip() + '\n'
return tagSwarmHtml