diff --git a/app/src/main/java/com/github/catvod/api/TianYiHandler.java b/app/src/main/java/com/github/catvod/api/TianYiHandler.java index d75c116f..5bb23f75 100644 --- a/app/src/main/java/com/github/catvod/api/TianYiHandler.java +++ b/app/src/main/java/com/github/catvod/api/TianYiHandler.java @@ -81,21 +81,37 @@ public class TianYiHandler { return cookieJar; } - public TianYiHandler() { + private static class Loader { + static volatile TianYiHandler INSTANCE = new TianYiHandler(); + } + + public static TianYiHandler get() { + return TianYiHandler.Loader.INSTANCE; + } + + private TianYiHandler() { cookieJar = new SimpleCookieJar(); cache = Cache.objectFrom(Path.read(getCache())); + } + + /** + * 初始化 + */ + public void init() { String user = cache.getUser().getCookie(); if (StringUtils.isNoneBlank(user)) { JsonObject jsonObject = Json.safeObject(user); String username = jsonObject.get("username").getAsString(); String password = jsonObject.get("password").getAsString(); + if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) { + this.startFlow(); + return; + } this.loginWithPassword(username, password); } else { this.startFlow(); } - - } public void cleanCookie() { diff --git a/app/src/main/java/com/github/catvod/api/TianyiApi.java b/app/src/main/java/com/github/catvod/api/TianyiApi.java index b43f78a5..83889172 100644 --- a/app/src/main/java/com/github/catvod/api/TianyiApi.java +++ b/app/src/main/java/com/github/catvod/api/TianyiApi.java @@ -109,7 +109,8 @@ public class TianyiApi { private TianyiApi() { Init.checkPermission(); - tianYiHandler = new TianYiHandler(); + tianYiHandler = TianYiHandler.get(); + tianYiHandler.init(); cookieJar = tianYiHandler.getCookieJar(); } diff --git a/app/src/main/java/com/github/catvod/bean/tianyi/Cache.java b/app/src/main/java/com/github/catvod/bean/tianyi/Cache.java index 54ef2d0e..0fcd41a8 100644 --- a/app/src/main/java/com/github/catvod/bean/tianyi/Cache.java +++ b/app/src/main/java/com/github/catvod/bean/tianyi/Cache.java @@ -30,11 +30,11 @@ public class Cache { } public void saveTianyiUser() { - Init.execute(() -> Path.write(new TianYiHandler().getCache(), toString())); + Init.execute(() -> Path.write( TianYiHandler.get().getCache(), toString())); } public void saveTianyieUser() { - Init.execute(() -> Path.write(new TianYiHandler().geteCache(), toString())); + Init.execute(() -> Path.write( TianYiHandler.get().geteCache(), toString())); } diff --git a/app/src/main/java/com/github/catvod/spider/Introduce.java b/app/src/main/java/com/github/catvod/spider/Introduce.java index a7d36af0..9d133d07 100644 --- a/app/src/main/java/com/github/catvod/spider/Introduce.java +++ b/app/src/main/java/com/github/catvod/spider/Introduce.java @@ -72,12 +72,12 @@ public class Introduce extends Spider { qrCodeHandler.startUC_TOKENScan(); } if (vodId.equals("天翼cookie")) { - TianYiHandler qrCodeHandler = new TianYiHandler(); - qrCodeHandler.startScan(); + TianYiHandler qrCodeHandler = TianYiHandler.get(); + qrCodeHandler.startFlow(); } if (vodId.equals("clean天翼cookie")) { - TianYiHandler qrCodeHandler = new TianYiHandler(); + TianYiHandler qrCodeHandler = TianYiHandler.get(); qrCodeHandler.cleanCookie(); } Vod item = new Vod(); diff --git a/app/src/test/java/com/github/catvod/api/TianYiHandlerTest.java b/app/src/test/java/com/github/catvod/api/TianYiHandlerTest.java index e3c23f5d..5fe0c306 100644 --- a/app/src/test/java/com/github/catvod/api/TianYiHandlerTest.java +++ b/app/src/test/java/com/github/catvod/api/TianYiHandlerTest.java @@ -18,7 +18,7 @@ public class TianYiHandlerTest { @Before public void setUp() { - tianYiHandler = new TianYiHandler(); + tianYiHandler = TianYiHandler.get(); } diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index fc190ffd..a329fc8a 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 de7cac53..b2c7cae4 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -d06e5321a30e789d70ce9df6231d0518 +bb54c03fd035f011b948b4ccf1273819 diff --git a/json/test.json b/json/test.json index 6118d862..0dc15213 100644 --- a/json/test.json +++ b/json/test.json @@ -1,5 +1,5 @@ { - "spider": "https://ghproxy.net/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/refs/heads/tianyiPassword/jar/custom_spider.jar;md5;d06e5321a30e789d70ce9df6231d0518", + "spider": "https://ghproxy.net/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/refs/heads/tianyiPassword/jar/custom_spider.jar;md5;bb54c03fd035f011b948b4ccf1273819", "lives": [ { "name": "电视直播",