Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
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))
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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))
Exemplo n.º 7
0
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))
Exemplo n.º 8
0
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)
Exemplo n.º 9
0
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))
Exemplo n.º 10
0
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)