heartranked

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

commit 5015648dafd6da4fac7f62eacae0066385626d53
parent eb712d11b7cd1d4f88679835596599181c7b7a61
Author: rbckman <rob@tarina.org>
Date:   Wed, 26 Aug 2026 04:57:43 +0300

open whatev text file and save them when adminlevel five

Diffstat:
Mhtml/editor.html | 4+++-
Mserver.py | 32++++++++++++++++++++++++++------
2 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/html/editor.html b/html/editor.html @@ -1,4 +1,4 @@ -$def with (storage, text, text2, markdown, safe_filename, soundlink, public, logged, user, combine, remix) +$def with (storage, text, text2, markdown, safe_filename, soundlink, public, logged, user, combine, remix, saveto) <link rel="stylesheet" href="static/splash.css?v=133" type="text/css" rel="stylesheet"/> <meta name="viewport" content="width=device-width, initial-scale=1"> @@ -266,6 +266,8 @@ function uploadSingleFile(file, progressBar, statusEl) { <textarea id="editor">$text</textarea> <small id="count">255 characters remaining</small> <textarea id="editor2">$text2</textarea> +$if saveto != '': + saving to file $saveto $if soundlink: <a href="/editor?edit=$soundlink"><code>/editor?edit=$soundlink</code></a></br> <div id="status"></div> diff --git a/server.py b/server.py @@ -46,8 +46,8 @@ urls = ( '/upload', 'upload', '/rendered', 'rendered', '/uploads?', 'uploads', - '/pull?', 'pull', - '/config', 'config') + '/p?', 'pull', + '/c?', 'config') #Load from settings webmaster = settings.webmaster @@ -74,7 +74,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':'', 'usrfeed':''}) +session = web.session.Session(app,store,initializer={'login':0, 'privilege':0, 'bag':[], 'sessionkey':'empty','postid':'','backurl':'','user':'','search':'', 'bildsida':'', 'feedbase':'', 'timebase':'', 'usrfeed':'', 'saveto':''}) 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' @@ -161,6 +161,10 @@ def savetext(thename, description): with open(basedir+thename, "w") as f: f.write(description) +def savetofile(thename, description): + with open(basedirthename, "w") as f: + f.write(description) + def loadtext(thename): if os.path.exists(basedir+thename): with open(basedir+thename, 'r') as f: @@ -1495,7 +1499,10 @@ storage = {"content": ""} class editor: def GET(self): if logged(): - i = web.input(publish=None, public=None, new=None, combine=None, remix=None) + i = web.input(publish=None, public=None, new=None, combine=None, remix=None, saveto='') + if i.saveto != '': + if session.login == 5: + session.saveto=i.saveto if i.combine != None: if session.user: text='' @@ -1555,6 +1562,9 @@ class editor: else: text = '' text2 = '' + if i.saveto != '': + text=i.saveto + text2=loadtext(i.saveto) if i.new == 'yes': session.postid = '' raise web.seeother('/editor') @@ -1580,6 +1590,7 @@ class editor: thedict={'soundname':soundname} savejson('u/'+session.user+'/posts/'+session.postid+'/meta',thedict) os.system('cp -r '+basedir+'u/'+session.user+'/posts/'+session.postid+' '+basedir+'p/posts/') + session.saveto='' #symlinkthis(session.postid, session.user) #also zippit here! #os.system('zip -r '+basedir+'p/zipped/'+session.postid+'.zip '+basedir+'p/posts/'+session.postid ) @@ -1588,7 +1599,7 @@ class editor: if zipandship == 'yes' or zipandship == 'True' or zipandship == 'y' or zipandship == 'Y': zippitandshippit(session.postid) raise web.seeother('/') - return rendersplash.editor(storage, text, text2, markdown, safe_filename, session.postid, i.public, logged(), session.user, i.combine, i.remix) + return rendersplash.editor(storage, text, text2, markdown, safe_filename, session.postid, i.public, logged(), session.user, i.combine, i.remix, session.saveto) class savepost: def POST(self): @@ -1609,6 +1620,8 @@ class savepost: savetext('u/'+session.user+'/posts/'+session.postid+'/intro', text) savetext('u/'+session.user+'/posts/'+session.postid+'/post', text2) print('post saved!') + if session.saveto != '': + savetext(text1, text2) return "ok" # simple response class imageapi: @@ -1837,7 +1850,6 @@ class pull: def GET(self): extensions=['zip','pdf','txt','md','mp4','jpeg','jpg','png','gif','wav','flac','mp3','ogg'] i = web.input(name=None,postid=None) #GET LIST WITH NAME JSON WHY NOT?! - if i.name != None and i.postid != None: print(i.name) print(i.postid) @@ -1896,6 +1908,14 @@ class pull: else: print('no access!') +class config: + def GET(self): + if logged(): + if session.login == 5: + i = web.input(do=None) + if i.do!=None: + raise web.seeother('/editor?saveto='+i.do) + #Load from settings standalone = settings.standaloneserver if standalone == 'yes' or standalone == 'True' or standalone == 'y' or standalone == 'Y':