From 4ee089eae170c8467d008398b55a758506b3ce01 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 23 Apr 2025 17:36:18 +0800 Subject: [PATCH] Clean code --- .../android/tv/api/config/WallConfig.java | 6 ++--- .../com/fongmi/android/tv/player/Source.java | 2 ++ .../android/tv/player/extractor/Proxy.java | 25 +++++++++++++++++++ .../com/fongmi/android/tv/server/Server.java | 9 +++---- .../com/fongmi/android/tv/utils/UrlUtil.java | 12 +++++---- 5 files changed, 40 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/com/fongmi/android/tv/player/extractor/Proxy.java diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java index 1c193788a..f73de1971 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/WallConfig.java @@ -14,8 +14,8 @@ import com.fongmi.android.tv.impl.Callback; import com.fongmi.android.tv.utils.FileUtil; import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.ResUtil; +import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Asset; import com.github.catvod.utils.Path; import java.io.File; @@ -85,9 +85,7 @@ public class WallConfig { } private File write(File file) throws Exception { - if (getUrl().startsWith("file")) Path.copy(Path.local(getUrl()), file); - else if (getUrl().startsWith("assets")) Path.copy(Asset.open(getUrl()), file); - else if (getUrl().startsWith("http")) Path.write(file, OkHttp.newCall(getUrl()).execute().body().bytes()); + Path.write(file, OkHttp.newCall(UrlUtil.convert(getUrl())).execute().body().bytes()); return resize(file); } diff --git a/app/src/main/java/com/fongmi/android/tv/player/Source.java b/app/src/main/java/com/fongmi/android/tv/player/Source.java index 18806a4b3..1351be3be 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Source.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Source.java @@ -7,6 +7,7 @@ import com.fongmi.android.tv.bean.Flag; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.player.extractor.Force; import com.fongmi.android.tv.player.extractor.JianPian; +import com.fongmi.android.tv.player.extractor.Proxy; import com.fongmi.android.tv.player.extractor.Push; import com.fongmi.android.tv.player.extractor.TVBus; import com.fongmi.android.tv.player.extractor.Thunder; @@ -39,6 +40,7 @@ public class Source { extractors = new ArrayList<>(); extractors.add(new Force()); extractors.add(new JianPian()); + extractors.add(new Proxy()); extractors.add(new Push()); extractors.add(new Thunder()); extractors.add(new TVBus()); diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Proxy.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Proxy.java new file mode 100644 index 000000000..c03885fd7 --- /dev/null +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Proxy.java @@ -0,0 +1,25 @@ +package com.fongmi.android.tv.player.extractor; + +import com.fongmi.android.tv.player.Source; +import com.fongmi.android.tv.utils.UrlUtil; + +public class Proxy implements Source.Extractor { + + @Override + public boolean match(String scheme, String host) { + return scheme.equals("proxy"); + } + + @Override + public String fetch(String url) throws Exception { + return UrlUtil.convert(url); + } + + @Override + public void stop() { + } + + @Override + public void exit() { + } +} 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 1f0ccc749..62de323bf 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 @@ -52,18 +52,17 @@ public class Server { public void start() { if (nano != null) return; - do { + while (port < 9999) { try { nano = new Nano(port); Proxy.set(port); nano.start(); - break; + return; } catch (Exception e) { - ++port; - nano.stop(); nano = null; + port++; } - } while (port < 9999); + } } public void stop() { diff --git a/app/src/main/java/com/fongmi/android/tv/utils/UrlUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/UrlUtil.java index 7b9043e26..c1c4222a0 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/UrlUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/UrlUtil.java @@ -1,6 +1,7 @@ package com.fongmi.android.tv.utils; import android.net.Uri; +import android.util.Log; import com.fongmi.android.tv.server.Server; import com.github.catvod.utils.UriUtil; @@ -41,11 +42,12 @@ public class UrlUtil { public static String convert(String url) { String scheme = scheme(url); - if ("local".equals(scheme)) return url.replace("local://", Server.get().getAddress("/")); - if ("assets".equals(scheme)) return url.replace("assets://", Server.get().getAddress("/")); - if ("file".equals(scheme)) return url.replace("file://", Server.get().getAddress("/file/")); - if ("proxy".equals(scheme)) return url.replace("proxy://", Server.get().getAddress("/proxy?")); - return url; + String path = null; + if ("file".equals(scheme)) path = "/file/"; + else if ("proxy".equals(scheme)) path = "/proxy?"; + else if ("local".equals(scheme) || "assets".equals(scheme)) path = "/"; + if (path != null) Log.e("DDD", url.replace(scheme + "://", Server.get().getAddress(path))); + return path != null ? url.replace(scheme + "://", Server.get().getAddress(path)) : url; } public static String fixHeader(String key) {