From ebf48b1579e72477e64907353b16ae7a8f5f6a92 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sat, 7 Jan 2023 15:42:22 +0800 Subject: [PATCH] Update Constant.java --- .../java/com/fongmi/android/tv/Constant.java | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/Constant.java b/app/src/main/java/com/fongmi/android/tv/Constant.java index e33195d47..dd1bddc6f 100644 --- a/app/src/main/java/com/fongmi/android/tv/Constant.java +++ b/app/src/main/java/com/fongmi/android/tv/Constant.java @@ -1,16 +1,44 @@ package com.fongmi.android.tv; +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.OkHttpClient; +import okhttp3.Request; + public class Constant { - public static final String PROXY = "https://ghproxy.com/"; - public static final String REPO = "https://raw.githubusercontent.com/FongMi/TV/"; + public static final String A = "https://raw.githubusercontent.com/"; + public static final String B = "https://raw.githubusercontents.com/"; + public static final String C = "https://ghproxy.com/"; + public static final String D = "https://raw.iqiq.io/"; + public static final String E = "https://raw.fastgit.org/"; + public static final String REPO = "FongMi/TV/"; public static final String RELEASE = "release"; + private static final int TIME = 2; + + private static String getProxy() { + if (isOk(A)) return A + REPO; + if (isOk(B)) return B + REPO; + if (isOk(C)) return C + A + REPO; + if (isOk(D)) return D + REPO; + if (isOk(E)) return E + REPO; + return ""; + } + + private static boolean isOk(String url) { + try { + return new OkHttpClient.Builder().connectTimeout(TIME, TimeUnit.SECONDS).build().newCall(new Request.Builder().url(url).build()).execute().code() == 200; + } catch (IOException e) { + return false; + } + } public static String getReleasePath(String path) { - return PROXY + REPO + RELEASE + path; + return getProxy() + RELEASE + path; } public static String getBranchPath(String branch, String path) { - return PROXY + REPO + branch + path; + return getProxy() + branch + path; } }