From ccab1261dcce51d926e0ffe83b664c1a0023457c Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Thu, 11 Jun 2020 20:55:14 +0200 Subject: [PATCH] Implement adding model by name in the webinterface like in the JavaFX GUI --- .../recorder/server/RecorderServlet.java | 21 +++++++++++++ .../src/main/resources/html/static/index.html | 30 +++++++++++-------- 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/server/src/main/java/ctbrec/recorder/server/RecorderServlet.java b/server/src/main/java/ctbrec/recorder/server/RecorderServlet.java index 3efb2f46..bb433526 100644 --- a/server/src/main/java/ctbrec/recorder/server/RecorderServlet.java +++ b/server/src/main/java/ctbrec/recorder/server/RecorderServlet.java @@ -8,6 +8,7 @@ import java.security.NoSuchAlgorithmException; import java.time.Instant; import java.util.Iterator; import java.util.List; +import java.util.Objects; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -77,6 +78,12 @@ public class RecorderServlet extends AbstractCtbrecServlet { response = "{\"status\": \"success\", \"msg\": \"Recording started\"}"; resp.getWriter().write(response); break; + case "startByName": + LOG.debug("Starting recording for model {}", request.model.getUrl()); + startByName(request); + response = "{\"status\": \"success\", \"msg\": \"Recording started\"}"; + resp.getWriter().write(response); + break; case "stop": new Thread(() -> { try { @@ -223,6 +230,20 @@ public class RecorderServlet extends AbstractCtbrecServlet { throw new IllegalArgumentException("No site found to record " + url); } + private void startByName(Request request) throws InvalidKeyException, NoSuchAlgorithmException, IOException { + String[] input = request.model.getUrl().split(":"); + String siteName = input[0]; + String modelName = input[1]; + for (Site site : sites) { + if (Objects.equals(siteName.toLowerCase(), site.getClass().getSimpleName().toLowerCase())) { + Model m = site.createModel(modelName); + recorder.startRecording(m); + return; + } + } + throw new IllegalArgumentException("No site found to record " + request.model.getUrl()); + } + private static class Request { public String action; public Model model; diff --git a/server/src/main/resources/html/static/index.html b/server/src/main/resources/html/static/index.html index 66dc1d28..060b6d01 100644 --- a/server/src/main/resources/html/static/index.html +++ b/server/src/main/resources/html/static/index.html @@ -77,13 +77,13 @@