heartranked

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

commit 9cf1698db953ea7b9dea5f4cc22128c328db6b6e
parent a2f47caa730ca83fe00fdb0b38abe03777ae151e
Author: rob <rob@tarina.org>
Date:   Tue, 11 Aug 2026 04:01:50 +0300

invites work. creat a invite links

Diffstat:
Mhtml/heartranked.html | 2+-
Mhtml/invites.html | 9+++++----
Mhtml/register.html | 6+++---
Mserver.py | 35++++++++++++++++++++++-------------
Msettings.py | 2+-
Mstatic/splash.css | 12++++++------
6 files changed, 38 insertions(+), 28 deletions(-)

diff --git a/html/heartranked.html b/html/heartranked.html @@ -4,7 +4,7 @@ $def with (markdown, visitors, total, unique, logged, rights, namn, getlikes, fo <meta charset="utf-8"> $#<title>$siteconfig.name | $siteconfig.description</title> <title>HEART RANKED | this is to do be the NEXT LEVEL SOCIAL NETWORK </title> - <link rel="stylesheet" href="static/splash.css?v=149" type="text/css" rel="stylesheet"/> + <link rel="stylesheet" href="static/splash.css?v=159" type="text/css" rel="stylesheet"/> <meta name="viewport" content="width=device-width, initial-scale=1"> </HEAD> diff --git a/html/invites.html b/html/invites.html @@ -8,15 +8,16 @@ $def with (tuningform, formfail, user, invites) </form> <h2>$formfail</h2> <br> + <br> <a href="/invites?render=yes">make new invite link</a> <br> $for i in invites: - $if i.accepted == '' or i.accepted == None: - <br><a href="/register?invite=$i.secretinvitation">$i.secretinvitation</a><br> created: $i.created.strftime('%d-%m-%y %H:%M') <br> + $if i['accepted'] == '' or i['accepted'] == None: + <br><a href="/register?invite=$i['secretinvitekey']">$i['secretinvitekey']</a><br> created: $i['timeadded']<br> $else: - <br><a href="/register?invite=$i.secretinvitation">$i.secretinvitation</a><br> accepted $i.accepted.strftime('%d-%m-%y %H:%M') <br> + <br><a href="/register?invite=$i['secretinvitekey']">$i['secretinvitekey']</a><br> accepted $i['accepted'] <br> - <a href="/heartranked"><-- back</a> + <a href="/"><-- back</a> </div> </div> diff --git a/html/register.html b/html/register.html @@ -3,8 +3,8 @@ $def with (loginform, formfail, totusers) <div id="default"> <br> $if totusers > 1: - <h5>the social network</h5> - <h1>heart base</h1> + <h5>the open social trusted publishing network</h5> + <h1>heartranked</h1> <h5>welcome</h5> <p>❤️</p> $else: @@ -18,7 +18,7 @@ $def with (loginform, formfail, totusers) </small> </div> <br> - <a href="/heartranked"><-- back</a> + <a href="/"><-- back</a> </div> </div> </div> diff --git a/server.py b/server.py @@ -75,6 +75,7 @@ def runfirst(): os.makedirs(basedir+'u/',exist_ok=True) os.makedirs(basedir+'r/',exist_ok=True) os.makedirs(basedir+'r/visitors',exist_ok=True) + os.makedirs(basedir+'r/invites',exist_ok=True) os.makedirs(basedir+'r/trusted',exist_ok=True) os.makedirs(basedir+'r/users',exist_ok=True) os.makedirs(basedir+'r/stopflood',exist_ok=True) @@ -249,9 +250,9 @@ def stopflood(ip,referer): def getinvitation(secretinvitation): invite=loadjson('r/invites/'+secretinvitation) - if invitation == secretinvitation: - if invite == '': - return True + print(invite) + if invite['secretinvitekey'] == secretinvitation: + return True return False class trust(): @@ -395,7 +396,11 @@ class register(): if len(i.password) < 5: raise web.seeother('/register?invite='+i.invite+'&fail=kortlosen'+r) #rymdadmins = db.select('rymdadmin', what='name, mail') - rymdadmins = os.listdir(basedir+'r/users/') + rymdadmins = [] + users = os.listdir(basedir+'r/users/') + for r in users: + admin=loadjson('r/users/'+r) + rymdadmins.append(admin) for p in rymdadmins: if p['name'].lower() == i.user.lower(): raise web.seeother('/register?invite='+i.invite+'&fail=nametaken' +r) @@ -403,10 +408,10 @@ class register(): raise web.seeother('/register?invite='+i.invite+'&fail=mailtaken' +r) adduser(i.user, i.password, i.mail.lower()) #Send mail to Madbaker - msg = "Wowowowoweeewaaa! Lets Ride The INTERNET Wave Together, Bee as home, HEART RANKED ftw! " + i.user + ' ' + i.mail + msg = "Wowowowoweeewaaa! Lets Ride The INTERNET Wave Together, Bees as home, HEART RANKED ftw! " + i.user + ' ' + i.mail sendmail(postadmin, 'Wowowoweewaaa!', msg) #Send mail to new user - msg = "Wowowowoweeewaaa! "+i.user+" Lets Ride INTERNET Wave Together, Bee as home, HEART RANKED ftw! https://robinbackman.com/heartranked" + msg = "Wowowowoweeewaaa! "+i.user+" Lets Ride INTERNET Wave Together, Bee as home, HEART RANKED ftw! https://heartranked.com" sendmail(i.mail, 'HEART RANKED VISIONARY Fleet', msg) #session.login = 3 #session.user = safe_filename(i.user) @@ -521,8 +526,12 @@ class invites(): web.form.Button('Skicka')) def GET(self): if session.login > 2: - user = loadjson('r/users/'+session.user) - invites = loadjson('r/invites/'+session.user) + invites=[] + v = get_files_by_time('r/invites/',newest_first=True) + if v: + for i in v: + invite=loadjson('r/invites/'+i) + invites.append(invite) tuningform = self.form() w = web.input(epost=None, render=None) formfail = '' @@ -530,9 +539,9 @@ class invites(): formfail = formfail + 'you have to put your email in' if w.render == 'yes': secretinvitekey = hashlib.md5(str(random.getrandbits(256)).encode('utf-8')).hexdigest() - thedict={"secretinvitekey":secretinvitekey,"timeadded":formattime(datetime.datetime.now()),"creator":session.user} - savejson('r/invites/'+session.user, thedict) - return render.invites(tuningform, formfail, user.name, invites) + thedict={"secretinvitekey":secretinvitekey,"timeadded":formattime(datetime.datetime.now()),"creator":session.user, "accepted":''} + savejson('r/invites/'+secretinvitekey, thedict) + return render.invites(tuningform, formfail, session.user, invites) def POST(self): if session.login > 2: user = loadjson('r/users/'+session.user) @@ -543,8 +552,8 @@ class invites(): if '@' not in i.mail: raise web.seeother('/tuning?fail=notmail') secretinvitekey = hashlib.md5(str(random.getrandbits(256)).encode('utf-8')).hexdigest() - thedict={"secretinvitekey":secretinvitekey,"timeadded":formattime(datetime.datetime.now()),"creator":session.user} - savejson('r/invites/'+session.user, thedict) + thedict={"secretinvitekey":secretinvitekey,"timeadded":formattime(datetime.datetime.now()),"creator":session.user, "accepted":''} + savejson('r/invites/'+secretinvitekey, thedict) msg = "YO! You are the One! " + user.name + " is your Morpheous. Follow this rabbit https://robinbackman.com/register?invite="+secretinvitekey sendmail(i.mail, 'Invitation to HEART RANKED!', msg) return web.seeother('/') diff --git a/settings.py b/settings.py @@ -9,5 +9,5 @@ baseurl = "https://heartranked.com" postadmin="me@robinbackman.com" postadmin_signature="\n-~-\nGreetings\nKing Robin\nHEART RANKED\nPeace!\nhttps://robinbackman.com/heartranked\nme@robinbackman.com\n" -standaloneserver="Y" +standaloneserver="no" diff --git a/static/splash.css b/static/splash.css @@ -201,7 +201,7 @@ color: #ccc; } #rendered { - width: 455px; /* Always 455px */ + width: 442px; /* Always 455px */ } code { @@ -210,10 +210,10 @@ code { font-size: 8pt; padding: 2px; border-radius: 2px; - min-width: 455px; - width: 455px; /* Always 455px */ - min-width: 455px; /* Prevents shrinking */ - max-width: 455px; /* Prevents growing */ + min-width: 442px; + width: 442px; /* Always 455px */ + min-width: 442px; /* Prevents shrinking */ + max-width: 442px; /* Prevents growing */ box-sizing: border-box; /* Includes padding & border in the width */ overflow-x: auto; font-family: monospace; @@ -277,7 +277,7 @@ img margin: 0px auto; width: 100%; height: auto; - max-width: 455px; + max-width: 442px; } .promotext