From 990b184e033644dfac9626f2d1cd29848bf3c7fa Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 1 Aug 2024 00:19:27 +0800 Subject: [PATCH] Add cache userInfo --- .../tv/player/exo/TrackNameProvider.java | 2 ++ .../net/interceptor/RequestInterceptor.java | 26 ++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/exo/TrackNameProvider.java b/app/src/main/java/com/fongmi/android/tv/player/exo/TrackNameProvider.java index 4e61267d4..8ddb6b487 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/exo/TrackNameProvider.java +++ b/app/src/main/java/com/fongmi/android/tv/player/exo/TrackNameProvider.java @@ -209,6 +209,8 @@ public class TrackNameProvider { return "TX3G"; case MimeTypes.APPLICATION_DVBSUBS: return "DVB"; + case MimeTypes.APPLICATION_MEDIA3_CUES: + return "CUES"; default: return mimeType; } diff --git a/catvod/src/main/java/com/github/catvod/net/interceptor/RequestInterceptor.java b/catvod/src/main/java/com/github/catvod/net/interceptor/RequestInterceptor.java index e010d0898..ede457c8f 100644 --- a/catvod/src/main/java/com/github/catvod/net/interceptor/RequestInterceptor.java +++ b/catvod/src/main/java/com/github/catvod/net/interceptor/RequestInterceptor.java @@ -8,26 +8,44 @@ import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; import java.io.IOException; -import java.net.URI; +import java.util.HashMap; +import java.util.Map; +import okhttp3.HttpUrl; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; public class RequestInterceptor implements Interceptor { + private final Map userMap; + private final Map authMap; + + public RequestInterceptor() { + this.userMap = new HashMap<>(); + this.authMap = new HashMap<>(); + } + @NonNull @Override public Response intercept(@NonNull Chain chain) throws IOException { Request request = chain.request(); - URI uri = request.url().uri(); String url = request.url().toString(); - Request.Builder builder = request.newBuilder(); OkCookieJar.sync(url, request.header(HttpHeaders.COOKIE)); boolean local = url.contains(":" + Proxy.getPort() + "/"); + Request.Builder builder = request.newBuilder(); if (url.contains("+") && local) builder.url(url.replace("+", "%2B")); if (url.contains("gitcode.net")) builder.header(HttpHeaders.USER_AGENT, Util.CHROME); - if (uri.getUserInfo() != null) builder.header(HttpHeaders.AUTHORIZATION, Util.basic(uri.getUserInfo())); + checkAuthUser(request.url(), builder); return chain.proceed(builder.build()); } + + private void checkAuthUser(HttpUrl url, Request.Builder builder) { + String user = url.uri().getUserInfo(); + String auth = url.queryParameter("auth"); + if (user != null) userMap.put(url.host(), user); + if (auth != null) authMap.put(url.host(), auth); + if (authMap.containsKey(url.host()) && auth == null) builder.url(url + "&auth=" + authMap.get(url.host())); + if (userMap.containsKey(url.host())) builder.header(HttpHeaders.AUTHORIZATION, Util.basic(userMap.get(url.host()))); + } }