From e1fb29b7c80ecafebd0d5ebd1509c3618fb7c3e7 Mon Sep 17 00:00:00 2001
From: 0xboobface <0xboobface@gmail.com>
Date: Sun, 7 Jun 2020 12:33:56 +0200
Subject: [PATCH] Add first implementation of a config servlet
---
.../ctbrec/recorder/server/ConfigServlet.java | 64 ++++
.../ctbrec/recorder/server/HttpServer.java | 4 +
.../src/main/resources/html/static/index.html | 347 +-----------------
.../src/main/resources/html/static/models.js | 142 +++++++
.../main/resources/html/static/recordings.js | 203 ++++++++++
5 files changed, 419 insertions(+), 341 deletions(-)
create mode 100644 server/src/main/java/ctbrec/recorder/server/ConfigServlet.java
create mode 100644 server/src/main/resources/html/static/models.js
create mode 100644 server/src/main/resources/html/static/recordings.js
diff --git a/server/src/main/java/ctbrec/recorder/server/ConfigServlet.java b/server/src/main/java/ctbrec/recorder/server/ConfigServlet.java
new file mode 100644
index 00000000..df3facbb
--- /dev/null
+++ b/server/src/main/java/ctbrec/recorder/server/ConfigServlet.java
@@ -0,0 +1,64 @@
+package ctbrec.recorder.server;
+
+import static javax.servlet.http.HttpServletResponse.*;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import ctbrec.Config;
+import ctbrec.Settings;
+
+public class ConfigServlet extends AbstractCtbrecServlet {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ConfigServlet.class);
+ private Config config;
+ private Settings settings;
+
+ public enum DataType {
+ STRING,
+ BOOLEAN,
+ INTEGER,
+ DOUBLE
+ }
+
+ public ConfigServlet(Config config) {
+ this.config = config;
+ this.settings = config.getSettings();
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ resp.setStatus(SC_OK);
+ resp.setContentType("application/json");
+
+ JSONArray json = new JSONArray();
+ addParameter("httpPort", "HTTP port", DataType.INTEGER, settings.httpPort, json);
+
+ resp.getWriter().print(json.toString(2));
+ LOG.debug("GET {} {}", req.getRequestURI(), req.getRequestURL());
+ }
+
+ private void addParameter(String key, String name, DataType type, Object value, JSONArray json) {
+ JSONObject param = new JSONObject();
+ param.put("key", key);
+ param.put("name", name);
+ param.put("type", type);
+ param.put("value", value);
+ json.put(param);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ resp.setStatus(SC_OK);
+ resp.setContentType("application/json");
+ LOG.debug("POST");
+ }
+}
diff --git a/server/src/main/java/ctbrec/recorder/server/HttpServer.java b/server/src/main/java/ctbrec/recorder/server/HttpServer.java
index 95c38fbf..f97d49b2 100644
--- a/server/src/main/java/ctbrec/recorder/server/HttpServer.java
+++ b/server/src/main/java/ctbrec/recorder/server/HttpServer.java
@@ -207,6 +207,10 @@ public class HttpServer {
ServletHolder holder = new ServletHolder(recorderServlet);
defaultContext.addServlet(holder, "/rec");
+ ConfigServlet configServlet = new ConfigServlet(config);
+ holder = new ServletHolder(configServlet);
+ defaultContext.addServlet(holder, "/config");
+
HlsServlet hlsServlet = new HlsServlet(this.config);
holder = new ServletHolder(hlsServlet);
defaultContext.addServlet(holder, "/hls/*");
diff --git a/server/src/main/resources/html/static/index.html b/server/src/main/resources/html/static/index.html
index f37e7bca..0627acc8 100644
--- a/server/src/main/resources/html/static/index.html
+++ b/server/src/main/resources/html/static/index.html
@@ -197,7 +197,6 @@
-
@@ -209,12 +208,16 @@
-
+
+
+
+
+
-
+