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 a7ab9d0..90ffb59 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,14 @@ public class Bili extends Spider { audios.put("30216", "64000"); } + private void setCookie() { + String config = extend.get("cookie").getAsString(); + if (config.startsWith("http")) config = OkHttp.string(config).trim(); + if (TextUtils.isEmpty(config)) config = COOKIE; + cookie = FileUtil.read(getUserCache()); + cookie = cookie.isEmpty() ? config : 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 +101,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 +110,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 +120,7 @@ public class Bili extends Spider { @Override public String homeVideoContent() throws Exception { - return categoryContent(extend.split("#")[0], "1", true, new HashMap<>()); + return categoryContent("窗 白噪音", "1", true, new HashMap<>()); } @Override @@ -321,16 +330,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 1e03d06..7a95d15 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 7f3d0a8..2de1b0c 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -7b867141be64b2346f595bc76cce671b +d8e5ff04fdf6cd4ac3449cd6acc257ee