Merge branch 'dev' into release

pull/286/head
FongMi 2 years ago
commit f6cd68541a
  1. 1
      app/src/leanback/res/layout/activity_collect.xml
  2. 1
      app/src/leanback/res/layout/activity_vod.xml
  3. 1
      app/src/leanback/res/layout/fragment_vod.xml
  4. 2
      catvod/src/main/java/com/github/catvod/net/OkHttp.java
  5. 36
      catvod/src/main/java/com/github/catvod/net/interceptor/DefaultInterceptor.java

@ -24,6 +24,7 @@
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingStart="24dp"

@ -10,6 +10,7 @@
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingStart="24dp"

@ -11,7 +11,6 @@
android:clipChildren="false"
android:clipToPadding="false"
android:paddingStart="24dp"
android:paddingTop="16dp"
android:paddingEnd="24dp"
android:paddingBottom="24dp"
app:focusOutEnd="true"

@ -132,7 +132,7 @@ public class OkHttp {
}
private static OkHttpClient.Builder getBuilder() {
OkHttpClient.Builder builder = new OkHttpClient.Builder().addInterceptor(new DefaultInterceptor()).connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS).readTimeout(TIMEOUT, TimeUnit.MILLISECONDS).writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS).dns(dns()).hostnameVerifier((hostname, session) -> true).sslSocketFactory(new SSLCompat(), SSLCompat.TM);
OkHttpClient.Builder builder = new OkHttpClient.Builder().addNetworkInterceptor(new DefaultInterceptor()).connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS).readTimeout(TIMEOUT, TimeUnit.MILLISECONDS).writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS).dns(dns()).hostnameVerifier((hostname, session) -> true).sslSocketFactory(new SSLCompat(), SSLCompat.TM);
builder.proxySelector(get().proxy ? selector() : defaultSelector);
return builder;
}

@ -26,8 +26,31 @@ public class DefaultInterceptor implements Interceptor {
@Override
public Response intercept(@NonNull Chain chain) throws IOException {
Response response = chain.proceed(getRequest(chain.request()));
String location = response.header(HttpHeaders.LOCATION);
String encoding = response.header(HttpHeaders.CONTENT_ENCODING);
if (response.body() == null || encoding == null || !encoding.equals("deflate")) return response;
if (response.isRedirect() && location != null) checkAuth(response, location);
if (response.body() != null && "deflate".equals(encoding)) return deflate(response);
return response;
}
private Request getRequest(Request request) {
URI uri = request.url().uri();
String url = request.url().toString();
Request.Builder builder = request.newBuilder();
boolean local = url.contains(":" + Proxy.getPort() + "/");
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()));
return builder.build();
}
private void checkAuth(Response response, String location) {
URI uri = URI.create(location);
if (uri.getUserInfo() == null) return;
response.header(HttpHeaders.AUTHORIZATION, Util.basic(uri.getUserInfo()));
}
private Response deflate(Response response) {
InflaterInputStream is = new InflaterInputStream(response.body().byteStream(), new Inflater(true));
return response.newBuilder().headers(response.headers()).body(new ResponseBody() {
@Nullable
@ -48,15 +71,4 @@ public class DefaultInterceptor implements Interceptor {
}
}).build();
}
private Request getRequest(@NonNull Request request) {
URI uri = request.url().uri();
String url = request.url().toString();
Request.Builder builder = request.newBuilder();
boolean local = url.contains(":" + Proxy.getPort() + "/");
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()));
return builder.build();
}
}

Loading…
Cancel
Save