From ae147771cba543f6411fb37a95c5aa4a94f6c4e9 Mon Sep 17 00:00:00 2001 From: Michael Mikovsky <77305074+Astatin3@users.noreply.github.com> Date: Fri, 23 May 2025 12:28:52 -0600 Subject: [PATCH] Start working on the server --- .../ridgescout/ui/transfer/FTPSync.java | 2 +- server/README.md | 0 server/main.py | 42 +++++++++++++++++++ server/requirements.txt | 1 + server/utils.py | 30 +++++++++++++ 5 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 server/README.md create mode 100644 server/main.py create mode 100644 server/requirements.txt create mode 100644 server/utils.py diff --git a/app/src/main/java/com/ridgebotics/ridgescout/ui/transfer/FTPSync.java b/app/src/main/java/com/ridgebotics/ridgescout/ui/transfer/FTPSync.java index 10d2aae..4c05be6 100644 --- a/app/src/main/java/com/ridgebotics/ridgescout/ui/transfer/FTPSync.java +++ b/app/src/main/java/com/ridgebotics/ridgescout/ui/transfer/FTPSync.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -// Class to synchronise data over FTP. +// This is now deprsicated public class FTPSync extends Thread { public static final String remoteBasePath = "/RidgeScout/"; public static final String timestampsFilename = "timestamps"; diff --git a/server/README.md b/server/README.md new file mode 100644 index 0000000..e69de29 diff --git a/server/main.py b/server/main.py new file mode 100644 index 0000000..1f2f24b --- /dev/null +++ b/server/main.py @@ -0,0 +1,42 @@ +import os +import json +from bottle import Bottle, run, get, static_file, response + +from utils import * + +app = Bottle() + +file_metadata = {} + +def save_metadata(): + global file_metadata + write(METADATA_FILE, json.dumps(file_metadata)) + +def load_metadata(): + global file_metadata + data = read(METADATA_FILE) + if data is not None: + file_metadata = json.loads(data) + +# @app.route('/') +# def list(): +# response.content_type = 'application/json' +# return json.dumps(ls(DATA_ROOT)) + + +@app.route('/api/metadata') +def metadata(): + global file_metadata + load_metadata() + response.content_type = 'application/json' + return json.dumps(file_metadata) + + + +# @app.route('/') +# def hello(filename): +# return static_file(DATA_ROOT, filename) + +if __name__ == '__main__': + mkdir(DATA_ROOT) + app.run(host='localhost', port=8080) diff --git a/server/requirements.txt b/server/requirements.txt new file mode 100644 index 0000000..310dc0b --- /dev/null +++ b/server/requirements.txt @@ -0,0 +1 @@ +bottle diff --git a/server/utils.py b/server/utils.py new file mode 100644 index 0000000..44c1b5a --- /dev/null +++ b/server/utils.py @@ -0,0 +1,30 @@ +import os + +ROOT = os.path.dirname(__file__) +METADATA_FILE = os.path.join(ROOT, 'metadata.json') +DATA_ROOT = os.path.join(os.path.dirname(__file__), 'data') + +def mkdir(path): + if not os.path.exists(path): + os.makedirs(path) + +def ls(path): + try: + return os.listdir(path) + except: + return [] + +def read(path): + if not os.path.exists(path): + return None + try: + with open(path) as f: + return f.read() + except: + return None + +def write(path, data): + if not os.path.exists(path): + with open(path, mode='a'): pass + with open(path, 'w') as f: + f.write(data)