def api_server_update(key, sid):
    # Get server database record
    server = models.Server.query.filter_by(id=sid).first()
    if not server:
        abort(404)

        # Get server process
    mt = minetest.get_process(server.id)
    if not mt:
        return "offline"

        # Check authentication key
    if mt.key != key:
        return "auth"

        # Handle GETs
    if request.method == "GET":
        retval = mt.toserver
        mt.toserver = []

        return json.dumps(retval)

        # Handle POSTs
    else:
        mt.process_data(json.loads(request.form["data"]), server)
        return "ok"
def api_server_update(key, sid):
	# Get server database record
	server = models.Server.query.filter_by(id=sid).first()
	if not server:
		abort(404)

	# Get server process
	mt = minetest.get_process(server.id)
	if not mt:
		return "offline"

	# Check authentication key
	if mt.key != key:
		return "auth"

	# Handle GETs
	if request.method == "GET":
		retval = mt.toserver
		mt.toserver = []

		return json.dumps(retval)

	# Handle POSTs
	else:
		mt.process_data(json.loads(request.form['data']), server)
		return "ok"
Esempio n. 3
0
def server_kill(sid):
    server = models.Server.query.filter_by(id=sid).first()
    if not server:
        abort(404)

    proc = minetest.get_process(server.id)
    if proc:
        proc.kill(server)

    return redirect(url_for('dashboard', sid=sid))
Esempio n. 4
0
def server_stop(sid):
    server = models.Server.query.filter_by(id=sid).first()
    if not server:
        abort(404)

    proc = minetest.get_process(server.id)
    if proc:
        proc.stop(current_user.username)

    return redirect(url_for('dashboard', sid=sid))
 def __init__(self, sock, api, sid):
     asyncore.dispatcher_with_send.__init__(sock)
     self.key = key
     self.sid = sid
     self.server = models.Server.query.filter_by(id=sid).first()
     self.mt = minetest.get_process(server.id)
     if not mt:
         self.send("offline")
     if mt.key != key:
         self.send("auth")
Esempio n. 6
0
def server_kill(sid):
	server = models.Server.query.filter_by(id=sid).first()
	if not server:
		abort(404)

	proc = minetest.get_process(server.id)
	if proc:
		proc.kill(server)

	return redirect(url_for('dashboard', sid=sid))
Esempio n. 7
0
def server_stop(sid):
	server = models.Server.query.filter_by(id=sid).first()
	if not server:
		abort(404)

	proc = minetest.get_process(server.id)
	if proc:
		proc.stop(current_user.username)

	return redirect(url_for('dashboard', sid=sid))
Esempio n. 8
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))
Esempio n. 9
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)
Esempio n. 10
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))
Esempio n. 11
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)