diff --git a/app/src/main/java/com/github/catvod/spider/Bili.java b/app/src/main/java/com/github/catvod/spider/Bili.java index a7ab9d07..2168f202 100644 --- a/app/src/main/java/com/github/catvod/spider/Bili.java +++ b/app/src/main/java/com/github/catvod/spider/Bili.java @@ -27,6 +27,8 @@ import com.github.catvod.net.OkHttp; import com.github.catvod.utils.FileUtil; import com.github.catvod.utils.QRCode; import com.github.catvod.utils.Utils; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import java.io.File; import java.net.URLEncoder; @@ -50,8 +52,8 @@ public class Bili extends Spider { private ScheduledExecutorService service; private Map audios; private AlertDialog dialog; + private JsonObject extend; private String cookie; - private String extend; private boolean login; private boolean vip; @@ -78,6 +80,13 @@ public class Bili extends Spider { audios.put("30216", "64000"); } + private void setCookie() { + cookie = extend.get("cookie").getAsString(); + if (cookie.startsWith("http")) cookie = OkHttp.string(cookie).trim(); + if (TextUtils.isEmpty(cookie)) cookie = FileUtil.read(getUserCache()); + if (TextUtils.isEmpty(cookie)) cookie = COOKIE; + } + private List getFilter() { List items = new ArrayList<>(); items.add(new Filter("order", "排序", Arrays.asList(new Filter.Value("預設", "totalrank"), new Filter.Value("最多點擊", "click"), new Filter.Value("最新發布", "pubdate"), new Filter.Value("最多彈幕", "dm"), new Filter.Value("最多收藏", "stow")))); @@ -91,9 +100,8 @@ public class Bili extends Spider { @Override public void init(Context context, String extend) { - this.extend = extend; - this.cookie = FileUtil.read(getUserCache()); - this.cookie = TextUtils.isEmpty(cookie) ? COOKIE : cookie; + this.extend = JsonParser.parseString(extend).getAsJsonObject(); + setCookie(); setAudio(); } @@ -101,7 +109,7 @@ public class Bili extends Spider { public String homeContent(boolean filter) throws Exception { List classes = new ArrayList<>(); LinkedHashMap> filters = new LinkedHashMap<>(); - String[] types = extend.split("#"); + String[] types = extend.get("type").getAsString().split("#"); for (String type : types) { classes.add(new Class(type)); filters.put(type, getFilter()); @@ -111,7 +119,8 @@ public class Bili extends Spider { @Override public String homeVideoContent() throws Exception { - return categoryContent(extend.split("#")[0], "1", true, new HashMap<>()); + String[] types = extend.get("type").getAsString().split("#"); + return categoryContent(types[0], "1", true, new HashMap<>()); } @Override @@ -261,7 +270,7 @@ public class Bili extends Spider { if (login || getUserCache().exists() && COOKIE.equals(cookie)) return; String json = OkHttp.string("https://passport.bilibili.com/x/passport-login/web/qrcode/generate?source=main-mini"); Data data = Resp.objectFrom(json).getData(); - Init.run(() -> openApp1(data)); + Init.run(() -> openApp(data)); } private Intent getIntent(String pkgName, Data data) { @@ -271,15 +280,7 @@ public class Bili extends Spider { return intent; } - private void openApp1(Data data) { - try { - Init.getActivity().startActivity(getIntent("tv.danmaku.bili", data)); - } catch (Exception e) { - openApp2(data); - } - } - - private void openApp2(Data data) { + private void openApp(Data data) { try { Init.getActivity().startActivity(getIntent("com.bilibili.app.in", data)); } catch (Exception e) { @@ -321,16 +322,16 @@ public class Bili extends Spider { } private void setCookie(String url) { - StringBuilder cookie = new StringBuilder(); + StringBuilder sb = new StringBuilder(); String[] splits = Uri.parse(url).getQuery().split("&"); - for (String split : splits) cookie.append(split).append(";"); - FileUtil.write(getUserCache(), this.cookie = cookie.toString()); + for (String split : splits) sb.append(split).append(";"); + FileUtil.write(getUserCache(), cookie = sb.toString()); Utils.notify("請重新進入播放頁"); stopService(); } private void cancel(DialogInterface dialog) { - FileUtil.write(getUserCache(), COOKIE); + FileUtil.write(getUserCache(), cookie = COOKIE); stopService(); } diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 1e03d063..9754398d 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 7f3d0a8e..9a3806c3 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -7b867141be64b2346f595bc76cce671b +d4dab21a9595058b00f4ad2ce977baf4 diff --git a/json/adult.json b/json/adult.json index 7e052dfc..9801f15f 100644 --- a/json/adult.json +++ b/json/adult.json @@ -1,5 +1,5 @@ { - "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;7b867141be64b2346f595bc76cce671b", + "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;d4dab21a9595058b00f4ad2ce977baf4", "wallpaper": "https://gao.chuqiuyu.tk", "sites": [ { diff --git a/json/config.json b/json/config.json index 41045cca..f779e7c2 100644 --- a/json/config.json +++ b/json/config.json @@ -1,5 +1,5 @@ { - "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;7b867141be64b2346f595bc76cce671b", + "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;d4dab21a9595058b00f4ad2ce977baf4", "wallpaper": "http://饭太硬.top/深色壁纸/api.php", "sites": [ { @@ -35,7 +35,10 @@ "api": "csp_Bili", "searchable": 1, "changeable": 0, - "ext": "帕梅拉#太极拳#广场舞#演唱会" + "ext": { + "type": "帕梅拉#太极拳#广场舞#演唱会", + "cookie": "" + } }, { "key": "泥巴",