initial commit:
This commit is contained in:
9
api.py
Normal file
9
api.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from flask import Flask
|
||||
|
||||
app = Flask("RecForever.API")
|
||||
|
||||
@app.route("/api")
|
||||
def apiRoot():
|
||||
pass
|
||||
|
||||
app.run(port=9902)
|
||||
46
app.py
Normal file
46
app.py
Normal file
@@ -0,0 +1,46 @@
|
||||
import subprocess
|
||||
import atexit
|
||||
import sys
|
||||
import time
|
||||
|
||||
trackedProcesses : list = []
|
||||
|
||||
def cleanup():
|
||||
print("\n[MainServer] Cleaning up server processes")
|
||||
for proc in trackedProcesses:
|
||||
if proc.poll() is None:
|
||||
print(f"[MainServer] Terming server subroutine {proc.pid}")
|
||||
proc.terminate()
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
for proc in trackedProcesses:
|
||||
if proc.poll() is None:
|
||||
print(f"[MainServer] Forcekilling leftover process {proc.pid}")
|
||||
proc.kill()
|
||||
|
||||
atexit.register(cleanup)
|
||||
|
||||
def main():
|
||||
try:
|
||||
ns = subprocess.Popen([sys.executable, 'nameserver.py'])
|
||||
trackedProcesses.append(ns)
|
||||
api =subprocess.Popen([sys.executable, 'api.py'])
|
||||
trackedProcesses.append(api)
|
||||
auth =subprocess.Popen([sys.executable, 'auth.py'])
|
||||
trackedProcesses.append(auth)
|
||||
cdn =subprocess.Popen([sys.executable, 'cdn.py'])
|
||||
trackedProcesses.append(cdn)
|
||||
|
||||
while True:
|
||||
# make it run forever without doing anything (it should still output the individual servers outputs)
|
||||
pass
|
||||
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\n[MainServer] Server closing!")
|
||||
finally:
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
15
auth.py
Normal file
15
auth.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from flask import Flask, request, jsonify
|
||||
players = {
|
||||
"Dev": "Dev123"
|
||||
}
|
||||
app = Flask("RecForever.Auth")
|
||||
@app.route("/login/byuid", methods=['POST'])
|
||||
def login():
|
||||
data = request.get_json()
|
||||
username = data.get('username')
|
||||
password = data.get('password')
|
||||
if players[username] == password:
|
||||
return jsonify({"status": "ok"}), 200
|
||||
else:
|
||||
return jsonify({"status": "forbidden"}), 403
|
||||
app.run(port=9904)
|
||||
17
cdn.py
Normal file
17
cdn.py
Normal file
@@ -0,0 +1,17 @@
|
||||
import http.server
|
||||
import socketserver
|
||||
import functools
|
||||
|
||||
port = 9903
|
||||
db = "db"
|
||||
|
||||
Handler = functools.partial(
|
||||
http.server.SimpleHTTPRequestHandler,
|
||||
directory=db
|
||||
)
|
||||
|
||||
with socketserver.TCPServer(("", port), Handler) as httpd:
|
||||
try:
|
||||
httpd.serve_forever()
|
||||
except KeyboardInterrupt:
|
||||
httpd.server_close()
|
||||
BIN
db/images/person.png
Normal file
BIN
db/images/person.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
BIN
db/spaces/DormRoom.scn
Normal file
BIN
db/spaces/DormRoom.scn
Normal file
Binary file not shown.
9
nameserver.py
Normal file
9
nameserver.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from flask import Flask, make_response, jsonify
|
||||
|
||||
app = Flask("RecForever.NamerServer")
|
||||
|
||||
@app.route("/")
|
||||
def root():
|
||||
return jsonify({"api": "127.0.0.1:9902", "cdn": "127.0.0.1:9903", "auth": "127.0.0.1:9904"})
|
||||
|
||||
app.run(port=9901)
|
||||
Reference in New Issue
Block a user