From bea7eff09296d1a09c6a3ac353cfccc853a502c8 Mon Sep 17 00:00:00 2001 From: jhengazuji Date: Thu, 13 Nov 2025 16:59:56 +0800 Subject: [PATCH] Clean code --- .../android/tv/server/impl/Process.java | 7 ++-- .../android/tv/server/process/Action.java | 7 ++-- .../android/tv/server/process/Cache.java | 7 ++-- .../android/tv/server/process/Local.java | 38 +++++++++++-------- .../android/tv/server/process/Media.java | 7 ++-- .../android/tv/server/process/Parse.java | 13 +++++-- .../android/tv/server/process/Proxy.java | 11 ++++-- 7 files changed, 54 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/server/impl/Process.java b/app/src/main/java/com/fongmi/android/tv/server/impl/Process.java index d78b06d7d..466f39bcd 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/impl/Process.java +++ b/app/src/main/java/com/fongmi/android/tv/server/impl/Process.java @@ -2,11 +2,12 @@ package com.fongmi.android.tv.server.impl; import java.util.Map; -import fi.iki.elonen.NanoHTTPD; +import fi.iki.elonen.NanoHTTPD.IHTTPSession; +import fi.iki.elonen.NanoHTTPD.Response; public interface Process { - boolean isRequest(NanoHTTPD.IHTTPSession session, String url); + boolean isRequest(IHTTPSession session, String url); - NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map files); + Response doResponse(IHTTPSession session, String url, Map files); } 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 d0d74359b..9b5cd2362 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 @@ -24,18 +24,19 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import fi.iki.elonen.NanoHTTPD; +import fi.iki.elonen.NanoHTTPD.IHTTPSession; +import fi.iki.elonen.NanoHTTPD.Response; import okhttp3.FormBody; public class Action implements Process { @Override - public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) { + public boolean isRequest(IHTTPSession session, String url) { return url.startsWith("/action"); } @Override - public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map files) { + public Response doResponse(IHTTPSession session, String url, Map files) { Map params = session.getParms(); String param = params.get("do"); if ("file".equals(param)) onFile(params); diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/Cache.java b/app/src/main/java/com/fongmi/android/tv/server/process/Cache.java index 250e41c67..191c09028 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/Cache.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/Cache.java @@ -8,12 +8,13 @@ import com.github.catvod.utils.Prefers; import java.util.Map; -import fi.iki.elonen.NanoHTTPD; +import fi.iki.elonen.NanoHTTPD.IHTTPSession; +import fi.iki.elonen.NanoHTTPD.Response; public class Cache implements Process { @Override - public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) { + public boolean isRequest(IHTTPSession session, String url) { return url.startsWith("/cache"); } @@ -22,7 +23,7 @@ public class Cache implements Process { } @Override - public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map files) { + public Response doResponse(IHTTPSession session, String url, Map files) { Map params = session.getParms(); String action = params.get("do"); String rule = params.get("rule"); diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/Local.java b/app/src/main/java/com/fongmi/android/tv/server/process/Local.java index f961179d2..04e9155d3 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/Local.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/Local.java @@ -1,5 +1,9 @@ package com.fongmi.android.tv.server.process; +import static fi.iki.elonen.NanoHTTPD.MIME_PLAINTEXT; +import static fi.iki.elonen.NanoHTTPD.getMimeTypeForFile; +import static fi.iki.elonen.NanoHTTPD.newFixedLengthResponse; + import com.fongmi.android.tv.server.Nano; import com.fongmi.android.tv.server.impl.Process; import com.fongmi.android.tv.utils.FileUtil; @@ -18,7 +22,9 @@ import java.util.List; import java.util.Locale; import java.util.Map; -import fi.iki.elonen.NanoHTTPD; +import fi.iki.elonen.NanoHTTPD.IHTTPSession; +import fi.iki.elonen.NanoHTTPD.Response; +import fi.iki.elonen.NanoHTTPD.Response.Status; public class Local implements Process { @@ -29,12 +35,12 @@ public class Local implements Process { } @Override - public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) { + public boolean isRequest(IHTTPSession session, String url) { return url.startsWith("/file") || url.startsWith("/upload") || url.startsWith("/newFolder") || url.startsWith("/delFolder") || url.startsWith("/delFile"); } @Override - public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map files) { + public Response doResponse(IHTTPSession session, String url, Map files) { if (url.startsWith("/file")) return getFile(session.getHeaders(), url); if (url.startsWith("/upload")) return upload(session.getParms(), files); if (url.startsWith("/newFolder")) return newFolder(session.getParms()); @@ -42,18 +48,18 @@ public class Local implements Process { return null; } - private NanoHTTPD.Response getFile(Map headers, String path) { + private Response getFile(Map headers, String path) { try { File file = Path.local(path.substring(5)); if (file.isDirectory()) return getFolder(file); - if (file.isFile()) return getFile(headers, file, NanoHTTPD.getMimeTypeForFile(path)); + if (file.isFile()) return getFile(headers, file, getMimeTypeForFile(path)); throw new FileNotFoundException(); } catch (Exception e) { return Nano.error(e.getMessage()); } } - private NanoHTTPD.Response upload(Map params, Map files) { + private Response upload(Map params, Map files) { String path = params.get("path"); for (String k : files.keySet()) { String fn = params.get(k); @@ -64,20 +70,20 @@ public class Local implements Process { return Nano.ok(); } - private NanoHTTPD.Response newFolder(Map params) { + private Response newFolder(Map params) { String path = params.get("path"); String name = params.get("name"); Path.root(path, name).mkdirs(); return Nano.ok(); } - private NanoHTTPD.Response delFolder(Map params) { + private Response delFolder(Map params) { String path = params.get("path"); Path.clear(Path.root(path)); return Nano.ok(); } - private NanoHTTPD.Response getFolder(File root) { + private Response getFolder(File root) { List list = Path.list(root); JsonObject info = new JsonObject(); info.addProperty("parent", root.equals(Path.root()) ? "." : root.getParent().replace(Path.rootPath(), "")); @@ -98,12 +104,12 @@ public class Local implements Process { return Nano.ok(info.toString()); } - private NanoHTTPD.Response getFile(Map headers, File file, String mime) throws IOException { + private Response getFile(Map headers, File file, String mime) throws IOException { long fileLen = file.length(); String ifNoneMatch = headers.get("if-none-match"); String etag = Integer.toHexString((file.getAbsolutePath() + file.lastModified() + fileLen).hashCode()); if (ifNoneMatch != null && (ifNoneMatch.equals("*") || ifNoneMatch.equals(etag))) { - return NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.NOT_MODIFIED, mime, ""); + return newFixedLengthResponse(Status.NOT_MODIFIED, mime, ""); } HttpRange range = HttpRange.from(fileLen, headers, etag); if (!range.valid()) { @@ -111,12 +117,12 @@ public class Local implements Process { } FileInputStream fis = new FileInputStream(file); robustSkip(fis, range.start); - NanoHTTPD.Response res; + Response res; if (range.isPartial(fileLen)) { - res = NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.PARTIAL_CONTENT, mime, fis, range.length); + res = newFixedLengthResponse(Status.PARTIAL_CONTENT, mime, fis, range.length); res.addHeader("Content-Range", "bytes " + range.start + "-" + range.end + "/" + fileLen); } else { - res = NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.OK, mime, fis, range.length); + res = newFixedLengthResponse(Status.OK, mime, fis, range.length); } res.addHeader("Content-Length", String.valueOf(range.length)); res.addHeader("Accept-Ranges", "bytes"); @@ -124,8 +130,8 @@ public class Local implements Process { return res; } - private NanoHTTPD.Response createRangeNotSatisfiableResponse(long fileLen) { - NanoHTTPD.Response res = NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.RANGE_NOT_SATISFIABLE, NanoHTTPD.MIME_PLAINTEXT, ""); + private Response createRangeNotSatisfiableResponse(long fileLen) { + Response res = newFixedLengthResponse(Status.RANGE_NOT_SATISFIABLE, MIME_PLAINTEXT, ""); res.addHeader("Content-Range", "bytes */" + fileLen); return res; } diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/Media.java b/app/src/main/java/com/fongmi/android/tv/server/process/Media.java index 9d35ae8d1..71bf8c728 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/Media.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/Media.java @@ -13,17 +13,18 @@ import com.google.gson.JsonObject; import java.util.Map; import java.util.Objects; -import fi.iki.elonen.NanoHTTPD; +import fi.iki.elonen.NanoHTTPD.IHTTPSession; +import fi.iki.elonen.NanoHTTPD.Response; public class Media implements Process { @Override - public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) { + public boolean isRequest(IHTTPSession session, String url) { return url.startsWith("/media"); } @Override - public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map files) { + public Response doResponse(IHTTPSession session, String url, Map files) { if (isNull()) return Nano.ok("{}"); JsonObject result = new JsonObject(); result.addProperty("url", getUrl()); diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/Parse.java b/app/src/main/java/com/fongmi/android/tv/server/process/Parse.java index 8c79cb759..5e3e753c2 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/Parse.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/Parse.java @@ -1,26 +1,31 @@ package com.fongmi.android.tv.server.process; +import static fi.iki.elonen.NanoHTTPD.MIME_HTML; +import static fi.iki.elonen.NanoHTTPD.newFixedLengthResponse; + import com.fongmi.android.tv.server.Nano; import com.fongmi.android.tv.server.impl.Process; import com.github.catvod.utils.Asset; import java.util.Map; -import fi.iki.elonen.NanoHTTPD; +import fi.iki.elonen.NanoHTTPD.IHTTPSession; +import fi.iki.elonen.NanoHTTPD.Response; +import fi.iki.elonen.NanoHTTPD.Response.Status; public class Parse implements Process { @Override - public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) { + public boolean isRequest(IHTTPSession session, String url) { return url.startsWith("/parse"); } @Override - public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map files) { + public Response doResponse(IHTTPSession session, String url, Map files) { try { Map params = session.getParms(); String html = String.format(Asset.read("parse.html"), params.get("jxs"), params.get("url")); - return NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.OK, NanoHTTPD.MIME_HTML, html); + return newFixedLengthResponse(Status.OK, MIME_HTML, html); } catch (Exception e) { return Nano.error(e.getMessage()); } diff --git a/app/src/main/java/com/fongmi/android/tv/server/process/Proxy.java b/app/src/main/java/com/fongmi/android/tv/server/process/Proxy.java index 94a3772a1..b3203dbca 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/process/Proxy.java +++ b/app/src/main/java/com/fongmi/android/tv/server/process/Proxy.java @@ -8,23 +8,26 @@ import java.io.InputStream; import java.util.Map; import fi.iki.elonen.NanoHTTPD; +import fi.iki.elonen.NanoHTTPD.IHTTPSession; +import fi.iki.elonen.NanoHTTPD.Response; +import fi.iki.elonen.NanoHTTPD.Response.Status; public class Proxy implements Process { @Override - public boolean isRequest(NanoHTTPD.IHTTPSession session, String url) { + public boolean isRequest(IHTTPSession session, String url) { return url.startsWith("/proxy"); } @Override - public NanoHTTPD.Response doResponse(NanoHTTPD.IHTTPSession session, String url, Map files) { + public Response doResponse(IHTTPSession session, String url, Map files) { try { Map params = session.getParms(); params.putAll(session.getHeaders()); params.putAll(files); Object[] rs = BaseLoader.get().proxyLocal(params); - if (rs[0] instanceof NanoHTTPD.Response) return (NanoHTTPD.Response) rs[0]; - NanoHTTPD.Response response = NanoHTTPD.newChunkedResponse(NanoHTTPD.Response.Status.lookup((Integer) rs[0]), (String) rs[1], (InputStream) rs[2]); + if (rs[0] instanceof Response) return (Response) rs[0]; + Response response = NanoHTTPD.newChunkedResponse(Status.lookup((Integer) rs[0]), (String) rs[1], (InputStream) rs[2]); if (rs.length > 3 && rs[3] != null) for (Map.Entry entry : ((Map) rs[3]).entrySet()) response.addHeader(entry.getKey(), entry.getValue()); return response; } catch (Throwable e) {