From 789583779562bf53738ffab1586590e33c3815f3 Mon Sep 17 00:00:00 2001 From: okjack Date: Sun, 3 Mar 2024 20:39:09 +0800 Subject: [PATCH] support clan://localhost/ --- .../main/java/com/fongmi/android/tv/api/LiveParser.java | 2 +- .../java/com/fongmi/android/tv/api/config/VodConfig.java | 4 ++-- .../java/com/fongmi/android/tv/api/loader/JarLoader.java | 2 ++ app/src/main/java/com/fongmi/android/tv/bean/Depot.java | 3 ++- app/src/main/java/com/fongmi/android/tv/utils/UrlUtil.java | 7 +++++++ 5 files changed, 14 insertions(+), 4 deletions(-) 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 95dee7e9a..d7b2c23f5 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 @@ -35,7 +35,7 @@ public class LiveParser { if (live.getGroups().size() > 0) return; if (live.getType() == 0) text(live, getText(live.getUrl())); if (live.getType() == 1) json(live, getText(live.getUrl())); - if (live.getType() == 2) proxy(live, getText(live.getUrl())); + if (live.getType() == 2) proxy(live, getText(UrlUtil.convert(live.getUrl()))); } public static void text(Live live, String text) { 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 007857d3b..01d838ce9 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 @@ -219,12 +219,12 @@ public class VodConfig { } private String parseApi(String api) { - if (api.startsWith("file") || api.startsWith("assets")) return UrlUtil.convert(api); + if (api.startsWith("file") || api.startsWith("clan") || api.startsWith("assets")) return UrlUtil.convert(api); return api; } private String parseExt(String ext) { - if (ext.startsWith("file") || ext.startsWith("assets")) return UrlUtil.convert(ext); + if (ext.startsWith("file") || ext.startsWith("clan") || ext.startsWith("assets")) return UrlUtil.convert(ext); if (ext.startsWith("img+")) return Decoder.getExt(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 e1e8e3a93..6bc4b2b92 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 @@ -95,6 +95,8 @@ public class JarLoader { load(key, Path.local(jar)); } else if (jar.startsWith("assets")) { parseJar(key, UrlUtil.convert(jar)); + } else if (!jar.isEmpty()) { + parseJar(key, UrlUtil.convert(jar)); } } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Depot.java b/app/src/main/java/com/fongmi/android/tv/bean/Depot.java index 49d7bf522..4b496c1e2 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Depot.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Depot.java @@ -3,6 +3,7 @@ package com.fongmi.android.tv.bean; import android.text.TextUtils; import com.fongmi.android.tv.App; +import com.fongmi.android.tv.utils.UrlUtil; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; @@ -24,7 +25,7 @@ public class Depot { } public String getUrl() { - return TextUtils.isEmpty(url) ? "" : url; + return TextUtils.isEmpty(url) ? "" : UrlUtil.fixUrl(url); } public String getName() { 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 1dd2a12b3..4dc4326a9 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 @@ -36,6 +36,7 @@ public class UrlUtil { public static String convert(String url) { String scheme = scheme(url); + if ("clan".equals(scheme)) fixUrl(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/")); @@ -43,6 +44,12 @@ public class UrlUtil { return url; } + public static String fixUrl(String url) { + if (url.contains("/localhost/")) url = url.replace("/localhost/", "/"); + if (url.startsWith("clan")) url = url.replace("clan", "file"); + return url; + } + public static String fixHeader(String key) { if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) return HttpHeaders.USER_AGENT; if (key.equalsIgnoreCase(HttpHeaders.REFERER)) return HttpHeaders.REFERER;