Add cache userInfo

pull/563/head
okjack 2 years ago
parent 0c8d30c66b
commit f70ea040f5
  1. 2
      app/src/main/java/com/fongmi/android/tv/player/custom/TrackNameProvider.java
  2. 26
      catvod/src/main/java/com/github/catvod/net/interceptor/RequestInterceptor.java

@ -236,6 +236,8 @@ public class TrackNameProvider {
return "TX3G";
case MimeTypes.APPLICATION_DVBSUBS:
return "DVB";
case MimeTypes.APPLICATION_MEDIA3_CUES:
return "CUES";
default:
return mimeType;
}

@ -7,25 +7,43 @@ 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<String, String> userMap;
private final Map<String, String> 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();
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())));
}
}

Loading…
Cancel
Save