heartranked

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

commit babbf089c9fed2c91742563af65f2790591155cc
parent a23f3423436f203fa66798cb6be4bc4a08b51fe3
Author: rbckman <rob@tarina.org>
Date:   Sun, 16 Aug 2026 23:18:30 +0300

added user feed

Diffstat:
Mhtml/heartranked.html | 11+++++++++--
Mserver.py | 102++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
2 files changed, 90 insertions(+), 23 deletions(-)

diff --git a/html/heartranked.html b/html/heartranked.html @@ -1,4 +1,4 @@ -$def with (markdown, visitors, total, unique, logged, rights, namn, getlikes, formattime, feedbase, totbilder, limit, offset, bildpersida, search, bilder, searchform, getcombines, timebase, getfeed, getcombofeed, userimage, postexist, show, loadjson, loadtext, len, heart, hearted, sitename, siteslogan, siterendered, siteaddress) +$def with (markdown, visitors, total, unique, logged, rights, namn, getlikes, formattime, feedbase, totbilder, limit, offset, bildpersida, search, bilder, searchform, getcombines, timebase, getfeed, getcombofeed, userimage, postexist, show, loadjson, loadtext, len, heart, hearted, sitename, siteslogan, siterendered, siteaddress, usrfeed) <HEAD> <meta charset="utf-8"> @@ -69,6 +69,13 @@ $if search != '': </div> $else: $if show == None: + $if usrfeed != '': + <br> + <b>showing only $usrfeed's + $:userimage(usrfeed) + feed now <a href='/?usrfeed='>show all</a></b> + <br> + <br> $#<small><a href="/?feedbase=timebased">timebased🌍</a> <a href="/?feedbase=heart1day">heartbased❤️day</a> <a href="/?feedbase=heart1week">week</a> <a href="/?feedbase=heart1month">month</a> <a href="/?feedbase=heart1year">year</a> <a href="/?feedbase=alltime">alltime</a></small> <small>🌍 <a href="/?feedbase=time">time</a> ❤️ <a href="/?feedbase=heart">heart</a> ⚭ <a href="/?feedbase=combo">combo</a> for <a href="/?timebase=today">day</a> <a href="/?timebase=week">week</a> <a href="/?timebase=month">month</a> <a href="/?timebase=year">year</a> <a href="/?timebase=all">all</a></small> <br> @@ -83,7 +90,7 @@ $else: </div> <div class="postmenu"> <small><small>$g['timeadded']</small></small> - <small>by $g['creator']</small> + <small>by <a href='?usrfeed=$g['creator']'>$g['creator']</a></small> $:userimage(g['creator']) <br> $getcombines(g['postid']) diff --git a/server.py b/server.py @@ -75,7 +75,7 @@ store = web.session.DiskStore(basedir + 'sessions') render = web.template.render(templatedir, base="base") renderop = web.template.render(templatedir, base="op") rendersplash = web.template.render(templatedir, base="splash") -session = web.session.Session(app,store,initializer={'login':0, 'privilege':0, 'bag':[], 'sessionkey':'empty','postid':'','backurl':'','user':'','search':'', 'bildsida':'', 'feedbase':'', 'timebase':''}) +session = web.session.Session(app,store,initializer={'login':0, 'privilege':0, 'bag':[], 'sessionkey':'empty','postid':'','backurl':'','user':'','search':'', 'bildsida':'', 'feedbase':'', 'timebase':'', 'usrfeed':''}) 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' @@ -1043,6 +1043,9 @@ rankrender() def getfeed(): timebase=session.timebase feedbase=session.feedbase + usr=session.usrfeed + print('fuuuuuu') + print(usr) if feedbase == '': feedbase = 'time' if timebase == '': @@ -1064,7 +1067,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) 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;") @@ -1075,7 +1081,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) 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;") @@ -1086,7 +1095,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) 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;") @@ -1097,15 +1109,20 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) elif feedbase == "heart" and timebase == "" or feedbase == "heart" and timebase == "all": #goodies = db.query("SELECT * FROM published ORDER BY hearts DESC LIMIT 1000;") posts = sort_by_name_then_time('/p/heartrank/') for p in posts: p=p[1] l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) - + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) #TIME elif feedbase == "time" and timebase == "today": one_day_before = now - datetime.timedelta(days=1) @@ -1117,7 +1134,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) 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;") @@ -1127,7 +1147,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) 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;") @@ -1137,7 +1160,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) 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;") @@ -1147,13 +1173,19 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + 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) for p in posts: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) #COMBO elif feedbase == "combo" and timebase == "today": @@ -1166,7 +1198,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) elif feedbase == "combo" 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 combines DESC LIMIT 1000;") @@ -1177,7 +1212,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) elif feedbase == "combo" 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 combines DESC LIMIT 1000;") @@ -1188,7 +1226,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) elif feedbase == "combo" 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 combines DESC LIMIT 1000;") @@ -1199,7 +1240,10 @@ def getfeed(): lastupdate = os.path.getmtime(basedir+'p/posts/'+p+'/meta') if datetime.datetime.fromtimestamp(lastupdate) > one_day_before: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + 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 = sort_by_name_then_time('p/comborank/') @@ -1207,7 +1251,10 @@ def getfeed(): #check modtime here day p=p[1] l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) elif feedbase == "Idontevenknow": #goodies = db.query("SELECT * FROM published ORDER BY combines DESC LIMIT 1000;") print('write your own custom feed here') @@ -1216,7 +1263,10 @@ def getfeed(): posts = os.listdir('p/posts/') for p in posts: l=loadjson('p/posts/'+p+'/meta') - goodies.append(l) + if usr=='': + goodies.append(l) + if usr==l['creator']: + goodies.append(l) return goodies def getcombofeed(show): @@ -1284,7 +1334,7 @@ class heartranked: bildpersida = 1000 session.search = '' session.bildsida = 0 - i = web.input(publised=None, public=None, show=None, remove=None, edit=None, feedbase=None, timebase=None) + i = web.input(publised=None, public=None, show=None, remove=None, edit=None, feedbase=None, timebase=None, usrfeed=None) #search try: #bilder_totalt = db.query("SELECT COUNT(*) AS sound FROM published")[0] @@ -1359,11 +1409,20 @@ class heartranked: else: timebase = i.timebase session.timebase = timebase + if i.timebase == None: + timebase = '' + else: + timebase = i.timebase + session.timebase = timebase + if i.usrfeed == None: + usrfeed = '' + else: + usrfeed = i.usrfeed + session.usrfeed = usrfeed if session.user=='': free_hash_for_user = hashlib.md5(str(random.getrandbits(256)).encode('utf-8')).hexdigest()[:4] #session.user = 'heart_'+free_hash_for_user session.user = None - if i.edit != None: session.postid=i.edit raise web.seeother('/editor?public=yes') @@ -1390,7 +1449,7 @@ class heartranked: rights = 'mod' else: rights = 'spacer' - return rendersplash.heartranked(markdown, visitors, total, unique, logged, rights, session.user, getlikes, formattime, feedbase, tot, limit, offset, bildpersida, session.search, bilder, searchform, getcombines, timebase, getfeed, getcombofeed, userimage, postexist, i.show, loadjson, loadtext, len, heart, hearted, sitename, siteslogan, siterendered, siteurl) + return rendersplash.heartranked(markdown, visitors, total, unique, logged, rights, session.user, getlikes, formattime, feedbase, tot, limit, offset, bildpersida, session.search, bilder, searchform, getcombines, timebase, getfeed, getcombofeed, userimage, postexist, i.show, loadjson, loadtext, len, heart, hearted, sitename, siteslogan, siterendered, siteurl, session.usrfeed) def POST(self): searchform = self.form() i = web.input() @@ -1399,6 +1458,7 @@ class heartranked: def zippitandshippit(postid): #also zippit here! + os.makedirs(basedir+'r/trusted/'+session.user+'/', exist_ok=True) #os.system('zip -r '+basedir+'p/zipped/'+session.postid+'.zip '+basedir+'p/posts/'+session.postid ) os.system('cd '+basedir+'p/posts/ && zip -o -r '+postid+'.zip '+postid ) os.system('mv '+basedir+'p/posts/'+postid+'.zip '+basedir+'/p/zipped/')