commit 77efd44f0d7bfcc198234ebd8132be3847780cfb
parent f76c243fcec766d9b4e0d0d7d0f8a4ab3b985841
Author: rbckman <rob@tarina.org>
Date: Sat, 22 Aug 2026 22:37:20 +0300
do rankrender after pull also better time algo
Diffstat:
| M | server.py | | | 37 | +++++++++++++++++++++++++++++++------ |
1 file changed, 31 insertions(+), 6 deletions(-)
diff --git a/server.py b/server.py
@@ -78,6 +78,8 @@ session = web.session.Session(app,store,initializer={'login':0, 'privilege':0, '
allowedchar = 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'
+datetimeformat="%Y-%m-%d %H:%M:%S"
+
# --- Parameters (often called N, r, p) ---
# N (n): CPU/Memory cost factor. Must be a power of 2 (e.g., 2**14 = 16384).
# r: Block size factor (typically 8).
@@ -846,6 +848,16 @@ def get_dirs_by_time(path, reverse=False):
reverse=reverse,
)
+def get_posts_by_time(path,reverse):
+ posts = os.listdir(path)
+ timebased=[]
+ for p in posts:
+ l=loadjson('p/posts/'+p+'/meta')
+ timebased.append((l['postid'],l['timeadded']))
+ fmt = datetimeformat
+ sorted_posts = sorted(timebased, key=lambda x: datetime.datetime.strptime(x[1], fmt),reverse=reverse)
+ return sorted_posts
+
def get_files_by_time(directory: str = ".", newest_first: bool = True):
path = Path(basedir+directory)
#Get all files (exclude directories and hidden files if you want)
@@ -1041,7 +1053,7 @@ def pushcombines(postid):
return ''
def formattime(timeadded):
- return timeadded.strftime("%Y-%m-%d %H:%M:%S")
+ return timeadded.strftime(datetimeformat)
def sort_by_name_then_time(path):
sortedposts=[]
@@ -1166,9 +1178,12 @@ def getfeed():
elif feedbase == "time" and timebase == "today":
one_day_before = now - datetime.timedelta(days=1)
#goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY ID DESC LIMIT 1000;")
- posts = get_dirs_by_time('p/posts/', reverse=True)
+ #posts = get_dirs_by_time('p/posts/', reverse=True)
+ posts = get_posts_by_time(basedir+'p/posts/',reverse=True)
+ print('fuuuuuuuuuu')
print(posts)
for p in posts:
+ p=p[0]
#check modtime here day
lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta')
if datetime.datetime.fromtimestamp(lastupdate) > one_day_before:
@@ -1180,8 +1195,10 @@ def getfeed():
elif feedbase == "time" and timebase == "week":
one_day_before = now - datetime.timedelta(weeks=1)
#goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY ID DESC LIMIT 1000;")
- posts = get_dirs_by_time('p/posts/', reverse=True)
+ #posts = get_dirs_by_time('p/posts/', reverse=True)
+ posts = get_posts_by_time(basedir+'p/posts/',reverse=True)
for p in posts:
+ p=p[0]
#check modtime here day
lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta')
if datetime.datetime.fromtimestamp(lastupdate) > one_day_before:
@@ -1193,8 +1210,10 @@ def getfeed():
elif feedbase == "time" and timebase == "month":
one_day_before = now - datetime.timedelta(weeks=4)
#goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY ID DESC LIMIT 1000;")
- posts = get_dirs_by_time('p/posts/', reverse=True)
+ #posts = get_dirs_by_time('p/posts/', reverse=True)
+ posts = get_posts_by_time(basedir+'p/posts/',reverse=True)
for p in posts:
+ p=p[0]
#check modtime here day
lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta')
if datetime.datetime.fromtimestamp(lastupdate) > one_day_before:
@@ -1206,8 +1225,10 @@ def getfeed():
elif feedbase == "time" and timebase == "year":
one_day_before = now - datetime.timedelta(weeks=54)
#goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY ID DESC LIMIT 1000;")
- posts = get_dirs_by_time('p/posts/', reverse=True)
+ #posts = get_dirs_by_time('p/posts/', reverse=True)
+ posts = get_posts_by_time(basedir+'p/posts/',reverse=True)
for p in posts:
+ p=p[0]
#check modtime here day
lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta')
if datetime.datetime.fromtimestamp(lastupdate) > one_day_before:
@@ -1218,8 +1239,10 @@ def getfeed():
goodies.append(l)
elif feedbase == "time" and timebase == "" or feedbase == "time" and timebase == "all":
#goodies = db.query("SELECT * FROM published ORDER BY ID DESC LIMIT 1000;")
- posts = get_dirs_by_time('p/posts/', reverse=True)
+ #posts = get_dirs_by_time('p/posts/', reverse=True)
+ posts = get_posts_by_time(basedir+'p/posts/',reverse=True)
for p in posts:
+ p=p[0]
l=loadjson('p/posts/'+p+'/meta')
if usr=='':
goodies.append(l)
@@ -1930,6 +1953,8 @@ class pull:
print(mediafiles)
for m in mediafiles:
symlinkmedia(m,pullposts[p]['postid'],session.user)
+ #finally render rank
+ rankrender()
else:
print('no access!')