diff --git a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java index 9a101df54..45a34a78f 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/Decoder.java +++ b/app/src/main/java/com/fongmi/android/tv/api/Decoder.java @@ -33,7 +33,7 @@ public class Decoder { } private static String fix(String url, String data) { - if (url.startsWith("file") || url.startsWith("assets")) url = UrlUtil.convert(url); + if (url.startsWith("file") || url.startsWith("clan") || url.startsWith("assets")) return UrlUtil.convert(url); data = data.replace("./", url.substring(0, url.lastIndexOf("/") + 1)); return data; } diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java index 9fa78456e..c30525132 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveParser.java @@ -114,7 +114,7 @@ public class LiveParser { private static String getText(String url) { if (url.startsWith("file")) return Path.read(url); if (url.startsWith("http")) return OkHttp.string(url); - if (url.startsWith("clan")) return getText(UrlUtil.fixUrl(url)); + if (url.startsWith("clan") || url.startsWith("assets")) return getText(UrlUtil.convert(url)); if (url.length() > 0 && url.length() % 4 == 0) return getText(new String(Base64.decode(url, Base64.DEFAULT))); return ""; } diff --git a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java index ffb4b387b..13236c603 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java @@ -215,19 +215,15 @@ public class VodConfig { } private String parseApi(String api) { - if (TextUtils.isEmpty(api)) return api; if (api.startsWith("http")) return api; - if (api.startsWith("file")) return UrlUtil.convert(api); - if (api.startsWith("clan")) return parseApi(UrlUtil.fixUrl(api)); + if (api.startsWith("file") || api.startsWith("clan") || api.startsWith("assets")) return UrlUtil.convert(api); return api; } private String parseExt(String ext) { - if (TextUtils.isEmpty(ext)) return ext; if (ext.startsWith("http")) return ext; if (ext.startsWith("img+")) return Decoder.getExt(ext); - if (ext.startsWith("file")) return UrlUtil.convert(ext); - if (ext.startsWith("clan")) return parseExt(UrlUtil.fixUrl(ext)); + if (ext.startsWith("file") || ext.startsWith("clan") || ext.startsWith("assets")) return UrlUtil.convert(ext); return ext; } diff --git a/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java b/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java index fc307a358..d07ec37b7 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/loader/JarLoader.java @@ -4,7 +4,6 @@ import android.content.Context; import com.fongmi.android.tv.App; import com.fongmi.android.tv.api.Decoder; -import com.fongmi.android.tv.api.config.VodConfig; import com.fongmi.android.tv.utils.UrlUtil; import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.SpiderNull; @@ -94,7 +93,7 @@ public class JarLoader { } else if (jar.startsWith("file")) { load(key, Path.local(jar)); } else if (!jar.isEmpty()) { - parseJar(key, UrlUtil.convert(VodConfig.getUrl(), jar)); + parseJar(key, UrlUtil.convert(jar)); } } 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 ea15374b5..91d1c56be 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 @@ -2,8 +2,6 @@ package com.fongmi.android.tv.utils; import android.net.Uri; -import androidx.media3.common.util.UriUtil; - import com.fongmi.android.tv.server.Server; import com.google.common.net.HttpHeaders; @@ -36,15 +34,10 @@ public class UrlUtil { return path == null ? "" : path.trim(); } - public static String convert(String baseUrl, String path) { - if (path.startsWith("clan")) return fixUrl(path); - if (path.startsWith("assets")) return convert(path); - return path.isEmpty() ? "" : UriUtil.resolve(baseUrl, path); - } - public static String convert(String url) { String host = host(url); String scheme = scheme(url); + if ("clan".equals(scheme)) fixUrl(url); if ("file".equals(scheme)) return Server.get().getAddress(url); if ("local".equals(scheme)) return Server.get().getAddress(host); if ("assets".equals(scheme)) return Server.get().getAddress(url.substring(9));