diff --git a/app/build.gradle b/app/build.gradle index 315f28c31..be0e3da9a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 28 versionCode 210 - versionName "20231213#2" + versionName "20231213#3" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] 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..f075f1fa8 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(); + else 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..daf99b31b 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 @@ -1,6 +1,5 @@ package com.fongmi.android.tv.server; -import com.fongmi.android.tv.App; import com.github.catvod.Proxy; import com.github.catvod.utils.Util; @@ -41,6 +40,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(); + proxy.start(); + } + + public void stopGo() { + if (proxy == null) return; + proxy.stop(); + proxy = null; + } + public void start() { if (nano != null) return; do { @@ -48,8 +59,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) {