def settings(sid): server = models.Server.query.filter_by(id=sid).first() if not server: abort(404) status = minetest.status(server) if request.method == "GET": return render_template('settings.html', user=current_user, server=server, status=status) else: # Get values name = request.form['name'].strip() desc = request.form['desc'].strip() port = request.form['port'].strip() worldname = request.form['worldname'].strip() debuglog = request.form['debug'].strip() # Validate values try: port = int(port) if port < 2 or port >= 65535: port = server.port except ValueError: port = server.port if not name or name == "" or not worldname or worldname == "": return render_template('settings.html', user=current_user, server=server, status=status) # Strip bad characters out name = ''.join(ch for ch in name if (ch.isalpha() or ch.isdigit()\ or ch==' ' or ch=='_')).strip() if app.config['SANDBOX']: worldname = ''.join(ch for ch in worldname if isDirSafe(ch)).strip() debuglog = ''.join(ch for ch in debuglog if (isDirSafe(ch) or ch == ".")).strip() print(name, port, worldname, debuglog) server.name = name server.desc = desc server.port = port server.worldname = worldname server.debuglog = debuglog models.db.session.commit() return redirect(url_for('dashboard', sid=sid))
def dashboard(sid): server = models.Server.query.filter_by(id=sid).first() if not server: abort(404) status = minetest.status(server) log = models.ServerLogEntry.query.filter_by(server=server).\ order_by(desc(models.ServerLogEntry.created)).limit(10).all() return render_template('dashboard.html', user=current_user, server=server, status=status, log=log)
def clear_logs(sid): server = models.Server.query.filter_by(id=sid).first() if not server: abort(404) status = minetest.status(server) res = models.ServerLogEntry.query.filter_by(server=server) for item in res: models.db.session.delete(item) models.db.session.commit() return redirect(url_for('dashboard', sid=sid))
def settings(sid): server = models.Server.query.filter_by(id=sid).first() if not server: abort(404) status = minetest.status(server) if request.method == "GET": return render_template('settings.html', user=current_user, server=server, status=status) else: # Get values name = request.form['name'].strip() desc = request.form['desc'].strip() port = request.form['port'].strip() worldname = request.form['worldname'].strip() debuglog = request.form['debug'].strip() # Validate values try: port = int(port) if port < 2 or port >= 65535: port = server.port except ValueError: port = server.port if not name or name == "" or not worldname or worldname == "": return render_template('settings.html', user=current_user, server=server, status=status) # Strip bad characters out name = ''.join(ch for ch in name if (ch.isalpha() or ch.isdigit()\ or ch==' ' or ch=='_')).strip() if app.config['SANDBOX']: worldname = ''.join(ch for ch in worldname if isDirSafe(ch)).strip() debuglog = ''.join(ch for ch in debuglog if (isDirSafe(ch) or ch==".")).strip() print(name, port, worldname, debuglog) server.name = name server.desc = desc server.port = port server.worldname = worldname server.debuglog = debuglog models.db.session.commit() return redirect(url_for('dashboard', sid=sid))
def chat(sid): server = models.Server.query.filter_by(id=sid).first() if not server: abort(404) status = minetest.status(server) if request.method == "GET": entries = models.ServerChatEntry.query.filter_by(serverId=sid).limit(30).all() return render_template('chat.html', user=current_user, server=server, status=status, entries=entries) else: proc = minetest.get_process(server.id) if proc: proc.send_chat_or_cmd(server, current_user.username, request.form['msg'], True) return redirect(url_for('chat', sid=sid))
def debuglog(sid): n = int(request.args.get('n') or 30) i = request.args.get('i') server = models.Server.query.filter_by(id=sid).first() if not server: abort(404) status = minetest.status(server) proc = minetest.get_process(server.id) log = None if proc: log = proc.getEndOfLog(n, i) return render_template('debuglog.html', user=current_user, server=server, status=status, debuglog=log, n=n, inc=i)
def chat(sid): server = models.Server.query.filter_by(id=sid).first() if not server: abort(404) status = minetest.status(server) if request.method == "GET": entries = models.ServerChatEntry.query.filter_by( serverId=sid).limit(30).all() return render_template('chat.html', user=current_user, server=server, status=status, entries=entries) else: proc = minetest.get_process(server.id) if proc: proc.send_chat_or_cmd(server, current_user.username, request.form['msg'], True) return redirect(url_for('chat', sid=sid))