forked from indymedia/epicyon
Archive old posts from outbox
parent
09aceda930
commit
e2aaa123d7
|
@ -14,6 +14,7 @@ from posts import getUserPosts
|
||||||
from posts import createPublicPost
|
from posts import createPublicPost
|
||||||
from posts import deleteAllPosts
|
from posts import deleteAllPosts
|
||||||
from posts import createOutbox
|
from posts import createOutbox
|
||||||
|
from posts import archivePosts
|
||||||
from session import createSession
|
from session import createSession
|
||||||
import json
|
import json
|
||||||
import sys
|
import sys
|
||||||
|
@ -37,6 +38,7 @@ privateKeyPem,publicKeyPem,person,wfEndpoint=createPerson(username,domain,https,
|
||||||
setPreferredUsername(username,domain,'badger')
|
setPreferredUsername(username,domain,'badger')
|
||||||
setBio(username,domain,'Some personal info')
|
setBio(username,domain,'Some personal info')
|
||||||
#createPublicPost(username, domain, https, "G'day world!", False, True, None, None, 'Not suitable for Vogons')
|
#createPublicPost(username, domain, https, "G'day world!", False, True, None, None, 'Not suitable for Vogons')
|
||||||
|
archivePosts(username,domain,4)
|
||||||
outboxHeader,outboxJson=createOutbox(username,domain,https,3,None)
|
outboxHeader,outboxJson=createOutbox(username,domain,https,3,None)
|
||||||
pprint(outboxHeader)
|
pprint(outboxHeader)
|
||||||
print('\n')
|
print('\n')
|
||||||
|
|
33
posts.py
33
posts.py
|
@ -166,6 +166,18 @@ def createOutboxDir(username: str,domain: str) -> str:
|
||||||
os.mkdir(outboxDir)
|
os.mkdir(outboxDir)
|
||||||
return outboxDir
|
return outboxDir
|
||||||
|
|
||||||
|
def createOutboxArchive(username: str,domain: str) -> str:
|
||||||
|
"""Creates an archive directory for outbox posts
|
||||||
|
"""
|
||||||
|
handle=username.lower()+'@'+domain.lower()
|
||||||
|
baseDir=os.getcwd()
|
||||||
|
if not os.path.isdir(baseDir+'/accounts/'+handle):
|
||||||
|
os.mkdir(baseDir+'/accounts/'+handle)
|
||||||
|
outboxArchiveDir=baseDir+'/accounts/'+handle+'/outboxarchive'
|
||||||
|
if not os.path.isdir(outboxArchiveDir):
|
||||||
|
os.mkdir(outboxArchiveDir)
|
||||||
|
return outboxArchiveDir
|
||||||
|
|
||||||
def deleteAllPosts(username: str, domain: str) -> None:
|
def deleteAllPosts(username: str, domain: str) -> None:
|
||||||
"""Deletes all posts for a person
|
"""Deletes all posts for a person
|
||||||
"""
|
"""
|
||||||
|
@ -322,3 +334,24 @@ def createOutbox(username: str,domain: str,https: bool,noOfItems: int,startMessa
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
return outboxHeader,outboxItems
|
return outboxHeader,outboxItems
|
||||||
|
|
||||||
|
def archivePosts(username: str,domain: str,maxPostsInOutbox=256) -> None:
|
||||||
|
"""Retain a maximum number of posts within the outbox
|
||||||
|
Move any others to an archive directory
|
||||||
|
"""
|
||||||
|
outboxDir = createOutboxDir(username,domain)
|
||||||
|
archiveDir = createOutboxArchive(username,domain)
|
||||||
|
postsInOutbox=sorted(os.listdir(outboxDir), reverse=False)
|
||||||
|
noOfPosts=len(postsInOutbox)
|
||||||
|
if noOfPosts<=maxPostsInOutbox:
|
||||||
|
return
|
||||||
|
|
||||||
|
for postFilename in postsInOutbox:
|
||||||
|
filePath = os.path.join(outboxDir, postFilename)
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
archivePath = os.path.join(archiveDir, postFilename)
|
||||||
|
os.rename(filePath,archivePath)
|
||||||
|
# TODO: possibly archive any associated media files
|
||||||
|
noOfPosts -= 1
|
||||||
|
if noOfPosts <= maxPostsInOutbox:
|
||||||
|
break
|
||||||
|
|
Loading…
Reference in New Issue