heartranked

git clone https://git.tarina.org/heartranked
Log | Files | Refs

commit 00df66716dd1bd501e45ed69ff8160df08087683
parent f465db806db7aff42e050c3c6b811724777935e8
Author: rbckman <rob@tarina.org>
Date:   Fri,  7 Aug 2026 11:50:39 +0300

all worky

Diffstat:
Mserver.py | 99+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 64 insertions(+), 35 deletions(-)

diff --git a/server.py b/server.py @@ -67,6 +67,8 @@ allowedchar = '_','-','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o def runfirst(): os.makedirs(basedir+'p/posts',exist_ok=True) + os.makedirs(basedir+'p/comborank',exist_ok=True) + os.makedirs(basedir+'p/heartrank',exist_ok=True) os.makedirs(basedir+'p/deleted',exist_ok=True) os.makedirs(basedir+'u/',exist_ok=True) os.makedirs(basedir+'r/',exist_ok=True) @@ -76,6 +78,8 @@ def runfirst(): runfirst() + + def logged(): if session.login > 0: return True @@ -906,8 +910,8 @@ def pushcombines(postid): l=0 #m = db.query("SELECT * FROM likes WHERE bild='"+postid+"' AND user='"+user+"';") #db.update('published', where='postid="'+postid+'"', combines=l.combines) - thedict={'combines':l} - savejson('/p/posts/'+postid+'/meta',thedict) + #thedict={'combines':l} + #savejson('/p/posts/'+postid+'/meta',thedict) if l >= 0: return "⚭ " + str(l) else: @@ -926,6 +930,28 @@ def sort_by_name_then_time(path): heartrank=sorted(sortedposts, reverse=True) return heartrank +def rankrender(): + posts = os.listdir('p/posts') + for postid in posts: + try: + l=len(os.listdir(basedir+'p/posts/'+postid+'/hearts/')) + except: + l=0 + #db.update('published', where='postid="'+postid+'"', hearts=l.likes) + thedict={'hearts':l} + savejson('p/posts/'+postid+'/meta',thedict) + os.system('cp '+basedir+'p/posts/'+postid+'/meta '+basedir+'p/heartrank/'+postid+'-'+str(int(l)).zfill(16)) + try: + l=len(os.listdir(basedir+'p/posts/'+postid+'/combos/')) + except: + l=0 + #db.update('published', where='postid="'+postid+'"', hearts=l.likes) + thedict={'combos':l} + savejson('p/posts/'+postid+'/meta',thedict) + os.system('cp '+basedir+'p/posts/'+postid+'/meta '+basedir+'p/comborank/'+postid+'-'+str(int(l)).zfill(16)) + +rankrender() + def getfeed(): timebase=session.timebase feedbase=session.feedbase @@ -943,7 +969,7 @@ def getfeed(): #goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY hearts DESC LIMIT 1000;") #posts=os.listdir('/p/posts/') #make function get_files_by_time newest_first and by today week month year - posts = sort_by_name_then_time('/p/heartrank/') + posts = sort_by_name_then_time('p/heartrank/') for p in posts: #check modtime here day p=p[1] @@ -954,7 +980,7 @@ def getfeed(): elif feedbase == "heart" 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 hearts DESC LIMIT 1000;") - posts = sort_by_name_then_time('/p/heartrank/') + posts = sort_by_name_then_time('p/heartrank/') for p in posts: #check modtime here day p=p[1] @@ -965,7 +991,7 @@ def getfeed(): elif feedbase == "heart" 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 hearts DESC LIMIT 1000;") - posts = sort_by_name_then_time('/p/heartrank/') + posts = sort_by_name_then_time('p/heartrank/') for p in posts: #check modtime here day p=p[1] @@ -976,7 +1002,7 @@ def getfeed(): elif feedbase == "heart" 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 hearts DESC LIMIT 1000;") - posts = sort_by_name_then_time('/p/heartrank/') + posts = sort_by_name_then_time('p/heartrank/') for p in posts: #check modtime here day p=p[1] @@ -991,6 +1017,7 @@ def getfeed(): p=p[1] l=loadjson('p/posts/'+p+'/meta') goodies.append(l) + #TIME elif feedbase == "time" and timebase == "today": one_day_before = now - datetime.timedelta(days=1) @@ -1005,8 +1032,6 @@ def getfeed(): goodies.append(l) elif feedbase == "time" and timebase == "week": one_day_before = now - datetime.timedelta(weeks=1) - #now = now.strftime('%Y-%m-%d %H:%M:%S') - #one_day_before=one_day_before.strftime('%Y-%m-%d %H:%M:%S') #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) for p in posts: @@ -1017,88 +1042,82 @@ def getfeed(): goodies.append(l) elif feedbase == "time" and timebase == "month": one_day_before = now - datetime.timedelta(weeks=4) - now = now.strftime('%Y-%m-%d %H:%M:%S') - one_day_before=one_day_before.strftime('%Y-%m-%d %H:%M:%S') #goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY ID DESC LIMIT 1000;") - posts = get_files_by_time('p/posts/',newest_first=True) + posts = get_dirs_by_time('p/posts/', reverse=True) for p in posts: #check modtime here day lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') - if lastupdate > one_day_before: + if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') goodies.append(l) elif feedbase == "time" and timebase == "year": one_day_before = now - datetime.timedelta(weeks=54) - now = now.strftime('%Y-%m-%d %H:%M:%S') - one_day_before=one_day_before.strftime('%Y-%m-%d %H:%M:%S') #goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY ID DESC LIMIT 1000;") - posts = get_files_by_time('p/posts/',newest_first=True) + posts = get_dirs_by_time('p/posts/', reverse=True) for p in posts: #check modtime here day lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') - if lastupdate > one_day_before: + if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') 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_files_by_time('p/posts/',newest_first=True) + posts = get_dirs_by_time('p/posts/', reverse=True) for p in posts: l=loadjson('p/posts/'+p+'/meta') goodies.append(l) + #COMBO elif feedbase == "combo" and timebase == "today": one_day_before = now - datetime.timedelta(days=1) - now = now.strftime('%Y-%m-%d %H:%M:%S') - one_day_before=one_day_before.strftime('%Y-%m-%d %H:%M:%S') #goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY combines DESC LIMIT 1000;") - posts = os.listdir(basedir+'r/comborank/') + posts = sort_by_name_then_time('p/comborank/') for p in posts: #check modtime here day + p=p[1] lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') - if lastupdate > one_day_before: + if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') goodies.append(l) - print(goodies) elif feedbase == "combo" and timebase == "week": one_day_before = now - datetime.timedelta(weeks=1) - now = now.strftime('%Y-%m-%d %H:%M:%S') - one_day_before=one_day_before.strftime('%Y-%m-%d %H:%M:%S') #goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY combines DESC LIMIT 1000;") - posts = os.listdir('comborank/') + posts = sort_by_name_then_time('p/comborank/') for p in posts: #check modtime here day + p=p[1] lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') - if lastupdate > one_day_before: + if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') goodies.append(l) elif feedbase == "combo" and timebase == "month": one_day_before = now - datetime.timedelta(weeks=4) - now = now.strftime('%Y-%m-%d %H:%M:%S') - one_day_before=one_day_before.strftime('%Y-%m-%d %H:%M:%S') #goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY combines DESC LIMIT 1000;") - posts = os.listdir(basedir+'r/comborank/') + posts = sort_by_name_then_time('p/comborank/') for p in posts: #check modtime here day + p=p[1] lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') - if lastupdate > one_day_before: + if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') goodies.append(l) elif feedbase == "combo" and timebase == "year": one_day_before = now - datetime.timedelta(weeks=54) - now = now.strftime('%Y-%m-%d %H:%M:%S') - one_day_before=one_day_before.strftime('%Y-%m-%d %H:%M:%S') #goodies = db.query("SELECT * FROM published WHERE timeadded BETWEEN '"+one_day_before+"' AND '"+now+"' ORDER BY combines DESC LIMIT 1000;") - posts = os.listdir(basedir+'r/comborank/') + posts = sort_by_name_then_time('p/comborank/') for p in posts: #check modtime here day + p=p[1] lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') - if lastupdate > one_day_before: + if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') goodies.append(l) elif feedbase == "combo" and timebase == "" or feedbase == "combo" and timebase == "all": #goodies = db.query("SELECT * FROM published ORDER BY combines DESC LIMIT 1000;") - posts = os.listdir('r/comborank/') + posts = sort_by_name_then_time('p/comborank/') for p in posts: + #check modtime here day + p=p[1] l=loadjson('p/posts/'+p+'/meta') goodies.append(l) elif feedbase == "Idontevenknow": @@ -1298,6 +1317,16 @@ class editor: savejson('u/'+session.user+'/posts/'+session.postid+'/meta',thedict) os.makedirs(basedir+'p/posts/'+i.combine+'/combos', exist_ok=True) savetext('p/posts/'+i.combine+'/combos/'+session.postid,session.user) + #calculate comborank + os.makedirs(basedir+'p/heartrank/',exist_ok=True) + try: + l=len(os.listdir(basedir+'p/posts/'+postid+'/combos/')) + except: + l=0 + thedict={'combos':l} + savejson('p/posts/'+postid+'/meta',thedict) + os.system('rm '+basedir+'p/comborank/'+postid+'-'+str(int(l)).zfill(16)) + os.system('cp '+basedir+'p/posts/'+postid+'/meta '+basedir+'p/comborank/'+postid+'-'+str(int(l+1)).zfill(16)) if i.remix != None: if session.user: text=''