diff --git a/app/src/main/java/com/github/catvod/bean/ali/Code.java b/app/src/main/java/com/github/catvod/bean/ali/Code.java deleted file mode 100644 index 6914115..0000000 --- a/app/src/main/java/com/github/catvod/bean/ali/Code.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.github.catvod.bean.ali; - -import com.google.gson.Gson; -import com.google.gson.annotations.SerializedName; - -public class Code { - - @SerializedName("data") - private Data data; - @SerializedName("pds_login_result") - private Data result; - - public static Code objectFrom(String str) { - try { - return new Gson().fromJson(str, Code.class); - } catch (Exception e) { - return new Code(); - } - } - - public Data getData() { - return data == null ? new Data() : data; - } - - public Data getResult() { - return result == null ? new Data() : result; - } - - public boolean hasToken() { - return getResult().getRefreshToken().length() > 0; - } - - public static class Data { - - @SerializedName("t") - private String t; - @SerializedName("ck") - private String ck; - @SerializedName("codeContent") - private String codeContent; - @SerializedName("refreshToken") - private String refreshToken; - - public String getT() { - return t; - } - - public String getCk() { - return ck; - } - - public String getCodeContent() { - return codeContent == null ? "" : codeContent; - } - - public String getRefreshToken() { - return refreshToken == null ? "" : refreshToken; - } - } -} diff --git a/app/src/main/java/com/github/catvod/bean/ali/Data.java b/app/src/main/java/com/github/catvod/bean/ali/Data.java new file mode 100644 index 0000000..a6ad82e --- /dev/null +++ b/app/src/main/java/com/github/catvod/bean/ali/Data.java @@ -0,0 +1,50 @@ +package com.github.catvod.bean.ali; + +import com.google.gson.Gson; +import com.google.gson.annotations.SerializedName; + +public class Data { + + @SerializedName(value = "data", alternate = "pds_login_result") + private Data data; + @SerializedName("t") + private String t; + @SerializedName("ck") + private String ck; + @SerializedName("codeContent") + private String codeContent; + @SerializedName("refreshToken") + private String refreshToken; + + public static Data objectFrom(String str) { + try { + return new Gson().fromJson(str, Data.class); + } catch (Exception e) { + return new Data(); + } + } + + public Data getData() { + return data == null ? new Data() : data; + } + + public boolean hasToken() { + return getData().getRefreshToken().length() > 0; + } + + public String getT() { + return t == null ? "" : t; + } + + public String getCk() { + return ck == null ? "" : ck; + } + + public String getCodeContent() { + return codeContent == null ? "" : codeContent; + } + + public String getRefreshToken() { + return refreshToken == null ? "" : refreshToken; + } +} diff --git a/app/src/main/java/com/github/catvod/spider/Ali.java b/app/src/main/java/com/github/catvod/spider/Ali.java index de1848e..58d423a 100644 --- a/app/src/main/java/com/github/catvod/spider/Ali.java +++ b/app/src/main/java/com/github/catvod/spider/Ali.java @@ -8,7 +8,7 @@ import android.widget.ImageView; import com.github.catvod.bean.Result; import com.github.catvod.bean.Vod; -import com.github.catvod.bean.ali.Code; +import com.github.catvod.bean.ali.Data; import com.github.catvod.bean.ali.Item; import com.github.catvod.net.OkHttpUtil; import com.github.catvod.utils.Misc; @@ -178,7 +178,7 @@ public class Ali { accessToken = null; e.printStackTrace(); checkService(); - getToken(); + getQRCode(); } } @@ -280,31 +280,31 @@ public class Ali { return result; } - public void getToken() { - Code code = Code.objectFrom(OkHttpUtil.string("https://easy-token.cooluc.com/qr")); - Init.run(() -> showQRCode(code.getData().getCodeContent())); + private void checkService() { + if (service != null) service.shutdownNow(); + if (view != null) Init.run(() -> Misc.removeView(view)); + } + + private void getQRCode() { + Data data = Data.objectFrom(OkHttpUtil.string("https://easy-token.cooluc.com/qr")); + Init.run(() -> showCode(data.getData().getCodeContent())); service = Executors.newScheduledThreadPool(1); service.scheduleAtFixedRate(() -> { JsonObject params = new JsonObject(); - params.addProperty("t", code.getData().getT()); - params.addProperty("ck", code.getData().getCk()); - Code result = Code.objectFrom(OkHttpUtil.postJson("https://easy-token.cooluc.com/ck", params.toString())); - if (result.hasToken()) saveToken(result.getResult().getRefreshToken()); + params.addProperty("t", data.getData().getT()); + params.addProperty("ck", data.getData().getCk()); + Data result = Data.objectFrom(OkHttpUtil.postJson("https://easy-token.cooluc.com/ck", params.toString())); + if (result.hasToken()) setToken(result.getData().getRefreshToken()); }, 1, 1, TimeUnit.SECONDS); } - private void checkService() { - if (service != null) service.shutdownNow(); - if (view != null) Init.run(() -> Misc.removeView(view)); - } - - private void saveToken(String value) { + private void setToken(String value) { Prefers.put("token", refreshToken = value); Init.show("請重新進入播放頁"); checkService(); } - private void showQRCode(String text) { + private void showCode(String text) { FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT); params.gravity = Gravity.CENTER; Misc.addView(view = create(text), params); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 96e34e6..08f4a8d 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index 7abd2ba..0ed9821 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -3972c08cf395106d2d7d58cf1076b5e0 +012fedf8372acec517e0d3f2cfdc4d6b