diff --git a/app/src/main/java/com/github/catvod/api/AliYun.java b/app/src/main/java/com/github/catvod/api/AliYun.java index 262dd172..5f67e09c 100644 --- a/app/src/main/java/com/github/catvod/api/AliYun.java +++ b/app/src/main/java/com/github/catvod/api/AliYun.java @@ -475,6 +475,7 @@ public class AliYun { } public Object[] proxyVideo(Map params) throws Exception { + String response = params.get("response"); String templateId = params.get("templateId"); String shareId = params.get("shareId"); String mediaId = params.get("mediaId"); @@ -500,7 +501,7 @@ public class AliYun { lock.unlock(); downloadUrl = mediaUrl; } - + if ("url".equals(response)) return new Object[]{200, "text/plain; charset=utf-8", new ByteArrayInputStream(downloadUrl.getBytes("UTF-8"))}; Map headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); for (String key : params.keySet()) headers.put(key, params.get(key)); headers.remove("do"); diff --git a/app/src/main/java/com/github/catvod/utils/ProxyVideo.java b/app/src/main/java/com/github/catvod/utils/ProxyVideo.java index 29928cbc..da450595 100644 --- a/app/src/main/java/com/github/catvod/utils/ProxyVideo.java +++ b/app/src/main/java/com/github/catvod/utils/ProxyVideo.java @@ -4,9 +4,12 @@ import static fi.iki.elonen.NanoHTTPD.Response.Status; import static fi.iki.elonen.NanoHTTPD.newFixedLengthResponse; import android.os.SystemClock; +import android.text.TextUtils; import com.github.catvod.net.OkHttp; import com.github.catvod.spider.Proxy; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import java.net.URLEncoder; import java.util.Locale; @@ -24,8 +27,21 @@ public class ProxyVideo { while (OkHttp.string(GO_SERVER).isEmpty()) SystemClock.sleep(20); } + public static String goVersion() { + String result = OkHttp.string(GO_SERVER + "version"); + if (TextUtils.isEmpty(result)) return ""; + try { + JsonObject obj = JsonParser.parseString(result).getAsJsonObject(); + return obj.get("version").getAsString(); + } catch (Exception e) { + return ""; + } + } + public static String url(String url, int thread) { go(); + String version = goVersion(); + if (!TextUtils.isEmpty(version) && url.contains("/proxy?")) url += "&response=url"; return String.format(Locale.getDefault(), "%s?url=%s&thread=%d", GO_SERVER, URLEncoder.encode(url), thread); }