diff --git a/app/src/main/java/com/github/catvod/bean/Result.java b/app/src/main/java/com/github/catvod/bean/Result.java index ab061f48..448517aa 100644 --- a/app/src/main/java/com/github/catvod/bean/Result.java +++ b/app/src/main/java/com/github/catvod/bean/Result.java @@ -8,7 +8,9 @@ import org.jetbrains.annotations.NotNull; import org.json.JSONObject; import java.lang.reflect.Type; +import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -23,11 +25,60 @@ public class Result { @SerializedName("header") private String header; @SerializedName("parse") - private String parse; + private Integer parse; @SerializedName("url") private String url; - @SerializedName("ua") - private String ua; + + public static Result get() { + return new Result(); + } + + public static String get(List classes, List list) { + return new Result(classes, list).toString(); + } + + public static String get(List classes, LinkedHashMap> filters) { + return new Result(classes, filters).toString(); + } + + public static String get(List classes, LinkedHashMap> filters, List list) { + return new Result(classes, filters, list).toString(); + } + + public static String get(List list) { + return new Result(list).toString(); + } + + public static String get(Vod vod) { + return new Result(vod).toString(); + } + + public Result() { + } + + public Result(List list) { + this.list = list; + } + + public Result(List classes, List list) { + this.classes = classes; + this.list = list; + } + + public Result(List classes, LinkedHashMap> filters) { + this.classes = classes; + this.filters = filters; + } + + public Result(List classes, LinkedHashMap> filters, List list) { + this.classes = classes; + this.filters = filters; + this.list = list; + } + + public Result(Vod vod) { + this.list = Arrays.asList(vod); + } public void setClasses(List classes) { this.classes = classes; @@ -41,29 +92,30 @@ public class Result { return list == null ? Collections.emptyList() : list; } - public void setFilters(LinkedHashMap> filters) { - this.filters = filters; - } - public void setFilters(JSONObject object) { - Type listType = new TypeToken>>() {}.getType(); + Type listType = new TypeToken>>() { + }.getType(); this.filters = new Gson().fromJson(object.toString(), listType); } - public void setHeader(String header) { - this.header = header; + public Result header(HashMap header) { + this.header = new Gson().toJson(header); + return this; } - public void setParse(String parse) { + public Result parse() { + this.parse = 1; + return this; + } + + public Result parse(int parse) { this.parse = parse; + return this; } - public void setUrl(String url) { + public Result url(String url) { this.url = url; - } - - public void setUa(String ua) { - this.ua = ua; + return this; } @NotNull diff --git a/app/src/main/java/com/github/catvod/spider/Biubiu.java b/app/src/main/java/com/github/catvod/spider/Biubiu.java index 57900d95..ee7ee40d 100644 --- a/app/src/main/java/com/github/catvod/spider/Biubiu.java +++ b/app/src/main/java/com/github/catvod/spider/Biubiu.java @@ -169,10 +169,7 @@ public class Biubiu extends Spider { public String playerContent(String flag, String id, List vipFlags) { fetchRule(); String webUrl = getRuleVal("url") + id; - Result result = new Result(); - result.setParse("1"); - result.setUrl(webUrl); - return result.toString(); + return Result.get().parse().url(webUrl).toString(); } @Override diff --git a/app/src/main/java/com/github/catvod/spider/Dm84.java b/app/src/main/java/com/github/catvod/spider/Dm84.java index 8c6bd7e0..c2bdbdd9 100644 --- a/app/src/main/java/com/github/catvod/spider/Dm84.java +++ b/app/src/main/java/com/github/catvod/spider/Dm84.java @@ -9,7 +9,6 @@ import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.net.OkHttpUtil; import com.github.catvod.utils.Misc; -import com.google.gson.Gson; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -17,7 +16,6 @@ import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -81,16 +79,11 @@ public class Dm84 extends Spider { String id = url.split("/")[2]; videos.add(new Vod(id, name, img, remark)); } - Result result = new Result(); - result.setFilters(filters); - result.setClasses(classes); - result.setList(videos); - return result.toString(); + return Result.get(classes, filters, videos); } @Override public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { - Result result = new Result(); List videos = new ArrayList<>(); if (extend.get("type") == null) extend.put("type", ""); if (extend.get("year") == null) extend.put("year", ""); @@ -108,16 +101,11 @@ public class Dm84 extends Spider { String id = url.split("/")[2]; videos.add(new Vod(id, name, img, remark)); } - result.setList(videos); - return result.toString(); + return Result.get(videos); } @Override public String detailContent(List ids) { - Vod vod = new Vod(); - Result result = new Result(); - Map sites = new LinkedHashMap<>(); - Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl.concat("/v/").concat(ids.get(0)), getHeaders())); String name = doc.select("h1.v_title").text(); String remarks = doc.select("p.v_desc > span.desc").text(); @@ -129,6 +117,7 @@ public class Dm84 extends Spider { String year = doc.select("meta[name=og:video:release_date]").attr("content"); String director = doc.select("meta[name=og:video:director]").attr("content"); + Vod vod = new Vod(); vod.setVodId(ids.get(0)); vod.setVodPic(img); vod.setVodYear(year); @@ -140,6 +129,7 @@ public class Dm84 extends Spider { vod.setVodDirector(director); vod.setTypeName(type); + Map sites = new LinkedHashMap<>(); Elements sources = doc.select("ul.tab_control > li"); Elements sourceList = doc.select("ul.play_list"); for (int i = 0; i < sources.size(); i++) { @@ -159,13 +149,11 @@ public class Dm84 extends Spider { vod.setVodPlayFrom(TextUtils.join("$$$", sites.keySet())); vod.setVodPlayUrl(TextUtils.join("$$$", sites.values())); } - result.setList(Arrays.asList(vod)); - return result.toString(); + return Result.get(vod); } @Override public String searchContent(String key, boolean quick) { - Result result = new Result(); List videos = new ArrayList<>(); String target = siteUrl.concat("/s----------.html?wd=").concat(key); Document doc = Jsoup.parse(OkHttpUtil.string(target, getHeaders())); @@ -177,18 +165,13 @@ public class Dm84 extends Spider { String id = url.split("/")[2]; videos.add(new Vod(id, name, img, remark)); } - result.setList(videos); - return result.toString(); + return Result.get(videos); } @Override public String playerContent(String flag, String id, List vipFlags) { Document doc = Jsoup.parse(OkHttpUtil.string(siteUrl.concat(id), getHeaders())); String url = doc.select("iframe").attr("src"); - Result result = new Result(); - result.setUrl(url); - result.setParse("1"); - result.setHeader(new Gson().toJson(getHeaders())); - return result.toString(); + return Result.get().url(url).parse().header(getHeaders()).toString(); } } diff --git a/app/src/main/java/com/github/catvod/spider/XPath.java b/app/src/main/java/com/github/catvod/spider/XPath.java index 19efcbca..a7ee4d86 100644 --- a/app/src/main/java/com/github/catvod/spider/XPath.java +++ b/app/src/main/java/com/github/catvod/spider/XPath.java @@ -272,11 +272,7 @@ public class XPath extends Spider { fetchRule(); String webUrl = rule.getPlayUrl().isEmpty() ? id : rule.getPlayUrl().replace("{playUrl}", id); SpiderDebug.log(webUrl); - Result result = new Result(); - result.setParse("1"); - if (!rule.getPlayUa().isEmpty()) result.setUa(rule.getPlayUa()); - result.setUrl(webUrl); - return result.toString(); + return Result.get().parse().url(webUrl).toString(); } @Override diff --git a/app/src/main/java/com/github/catvod/spider/wait/Anime1.java b/app/src/main/java/com/github/catvod/spider/wait/Anime1.java index 9b67c886..7631a696 100644 --- a/app/src/main/java/com/github/catvod/spider/wait/Anime1.java +++ b/app/src/main/java/com/github/catvod/spider/wait/Anime1.java @@ -8,7 +8,6 @@ import com.github.catvod.bean.Vod; import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.SpiderDebug; import com.github.catvod.net.OkHttpUtil; -import com.google.gson.Gson; import org.json.JSONArray; import org.json.JSONObject; @@ -306,7 +305,6 @@ public class Anime1 extends Spider { try { authority = ""; String url = "https://v.anime1.me/api"; - Result result = new Result(); String jsonreq = URLDecoder.decode(id, "UTF-8"); HashMap reqpayload = new HashMap<>(); reqpayload.put("d", jsonreq); @@ -315,10 +313,7 @@ public class Anime1 extends Spider { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 3; i++) sb.append(respHeaderMap.get("set-cookie").get(i).split(";")[0]).append(";"); cookies = sb.toString(); - result.setUrl(getVideoUrl(response)); - result.setHeader(new Gson().toJson(getHeaders1())); - result.setParse("0"); - return result.toString(); + return Result.get().url(getVideoUrl(response)).header(getHeaders1()).toString(); } catch (Exception e) { SpiderDebug.log(e); return "";