"Finish" Working on backend

This commit is contained in:
Astatin3
2024-01-22 17:04:09 -07:00
parent ad431dd4da
commit 0ea56990de
11 changed files with 197 additions and 101 deletions
+25 -19
View File
@@ -6,6 +6,7 @@ from flask import Flask, render_template, Response
from flask import request, redirect, url_for, make_response
import src.jsonpack as jsonpack
import src.packets as packets
import src.auth as auth
webroot = utils.getRoot('html/')
@@ -55,22 +56,22 @@ class webpage():
@app.route('/')
def index():
isValid = app.authServer.cookieLogin(request)
isValid = app.webserv.authServer.cookieLogin(request)
if not isValid:
return redirect("/login", code=302)
else:
return redirect(f'/{app.defaultTab}/{app.defaultPage}', code=302)
return redirect(f'/{app.webserv.defaultTab}/{app.webserv.defaultPage}', code=302)
@app.route('/login')
def loginPage():
isValid = app.authServer.cookieLogin(request)
isValid = app.webserv.authServer.cookieLogin(request)
if isValid:
return redirect(f'/{app.defaultTab}/{app.defaultPage}', code=302)
return redirect(f'/{app.webserv.defaultTab}/{app.webserv.defaultPage}', code=302)
return make_response(open(f'{webroot}nav.html', 'r').read()
.replace('<!--Place body here!!!-->', open(f'{webroot}login.html', 'r').read())
.replace('<!--Place tabs here!!!-->', '<a href="/login" role="button" class="outline topnav-button text-white">Login</a>')
.replace('<!--Place title here!!!-->', app.title)
.replace('<!--Place title here!!!-->', app.webserv.title)
.replace('<!--Place defaultPage here!!!-->', '/login'))
def recursivePageLocationFinder(pagename, objs):
@@ -88,21 +89,21 @@ def recursivePageLocationFinder(pagename, objs):
@app.route('/<tabname>/<pagename>')
def page(tabname, pagename):
isValid = app.authServer.cookieLogin(request)
isValid = app.webserv.authServer.cookieLogin(request)
if not isValid:
return redirect("/login", code=302)
try:
tab = utils.getatribinarr(app.webtabs, 'name', tabname)
tab = utils.getatribinarr(app.webserv.webtabs, 'name', tabname)
pageloc = recursivePageLocationFinder(pagename, tab.pages)
return make_response(open(utils.getRoot('html/nav.html'), 'r').read()
.replace('<!--Place body here!!!-->', open(utils.getRoot(pageloc), 'r').read())
.replace('<!--Place tabs here!!!-->', app.tabHtml)
.replace('<!--Place tabs here!!!-->', app.webserv.tabHtml)
.replace('<!--Place pages here!!!-->', tab.html)
.replace('<!--Place title here!!!-->', app.title)
.replace('<!--Place defaultPage here!!!-->', f'/{app.defaultTab}/{app.defaultPage}'))
.replace('<!--Place title here!!!-->', app.webserv.title)
.replace('<!--Place defaultPage here!!!-->', f'/{app.webserv.defaultTab}/{app.webserv.defaultPage}'))
except:
return redirect("/login", code=302)
@@ -114,6 +115,7 @@ def src(file):
def err404(err):
return redirect("/", code=302)
class webserv():
def __init__(self):
self.title = 'Modulator'
@@ -128,7 +130,7 @@ class webserv():
self.app = None
def start(self):
def init(self):
if not self.verbose:
import logging
log = logging.getLogger('werkzeug')
@@ -140,8 +142,6 @@ class webserv():
else:
sslcontext = None
self.proc = mupr.Process(target=app.run, kwargs=dict(debug=self.verbose, port=self.port, host=self.host, ssl_context=sslcontext))
def tabHtml(path, name):
return f'<a href="{path}" role="button" class="outline topnav-button text-white">{name}</a>'
@@ -150,16 +150,22 @@ class webserv():
if tab.name == self.defaultTab:
self.defaultPage = tab.defaultPage
app.authServer = auth.startAuthListener(app)
def testfunc1(ac, data):
print(ac)
print(data)
app.defaultTab = self.defaultTab
app.defaultPage = self.defaultPage
app.webtabs = self.webtabs
app.tabHtml = self.tabHtml
app.title = self.title
app.webserv = self
self.app = app
self.rawServer = packets.startRawListener(self)
self.authServer = auth.authServer(self)
self.proc = mupr.Process(target=app.run, kwargs=dict(debug=self.verbose, port=self.port, host=self.host, ssl_context=sslcontext))
def start(self):
self.proc.start()
# return self.rawServer
def stop(self):
self.proc.terminate()