diff --git a/app/src/main/java/com/fongmi/android/tv/server/Nano.java b/app/src/main/java/com/fongmi/android/tv/server/Nano.java index f44342c89..799330626 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/Nano.java +++ b/app/src/main/java/com/fongmi/android/tv/server/Nano.java @@ -69,6 +69,7 @@ public class Nano extends NanoHTTPD { Map files = new HashMap<>(); if (session.getMethod() == Method.POST) parse(session, files); if (url.contains("?")) url = url.substring(0, url.indexOf('?')); + if (url.startsWith("/go")) return go(session); if (url.startsWith("/m3u8")) return m3u8(session); if (url.startsWith("/proxy")) return proxy(session); if (url.startsWith("/tvbus")) return success(LiveConfig.getResp()); @@ -91,6 +92,13 @@ public class Nano extends NanoHTTPD { } } + private Response go(IHTTPSession session) { + String action = session.getParms().get("action"); + if ("start".equals(action)) Server.get().startGo(); + if ("stop".equals(action)) Server.get().stopGo(); + return success(); + } + private Response m3u8(IHTTPSession session) { String url = session.getParms().get("url"); String result = M3U8.get(url, session.getHeaders()); diff --git a/app/src/main/java/com/fongmi/android/tv/server/Server.java b/app/src/main/java/com/fongmi/android/tv/server/Server.java index 6f581da3c..f6605f7ec 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/Server.java +++ b/app/src/main/java/com/fongmi/android/tv/server/Server.java @@ -41,6 +41,18 @@ public class Server { return "http://" + (local ? "127.0.0.1" : Util.getIp()) + ":" + getPort(); } + public void startGo() { + if (proxy != null) return; + proxy = Go_proxy_video.newGoVideoProxy(); + App.execute(() -> proxy.start()); + } + + public void stopGo() { + if (proxy == null) return; + proxy.stop(); + proxy = null; + } + public void start() { if (nano != null) return; do { @@ -48,8 +60,6 @@ public class Server { nano = new Nano(port); Proxy.set(port); nano.start(); - proxy = Go_proxy_video.newGoVideoProxy(); - App.execute(() -> proxy.start()); break; } catch (Exception e) { ++port; diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/Action.java b/app/src/main/java/com/fongmi/android/tv/server/process/Action.java index 0e0c18b67..8fbd578d3 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/Action.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/Action.java @@ -39,27 +39,28 @@ public class Action implements Process { switch (Objects.requireNonNullElse(params.get("do"), "")) { case "search": onSearch(params); - break; + return Nano.success(); case "push": onPush(params); - break; + return Nano.success(); case "setting": onSetting(params); - break; + return Nano.success(); case "file": onFile(params); - break; + return Nano.success(); case "refresh": onRefresh(params); - break; + return Nano.success(); case "cast": onCast(params); - break; + return Nano.success(); case "sync": onSync(params); - break; + return Nano.success(); + default: + return Nano.error(null); } - return Nano.success(); } private void onSearch(Map params) {