From f078d28b7240b394aa6a77b9e0f4178328684315 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 23 Aug 2022 23:38:46 +0800 Subject: [PATCH] Clean code --- .../java/com/github/catvod/bean/Result.java | 98 +++++++++---------- .../java/com/github/catvod/spider/Biubiu.java | 23 ++--- .../java/com/github/catvod/spider/Dm84.java | 10 +- .../java/com/github/catvod/spider/XPath.java | 19 +--- .../com/github/catvod/spider/wait/Anime1.java | 18 +--- .../github/catvod/spider/wait/Tangrenjie.java | 19 +--- 6 files changed, 67 insertions(+), 120 deletions(-) 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 448517aa..d4e8b9fc 100644 --- a/app/src/main/java/com/github/catvod/bean/Result.java +++ b/app/src/main/java/com/github/catvod/bean/Result.java @@ -29,73 +29,55 @@ public class Result { @SerializedName("url") private String url; + public static String string(List classes, List list, LinkedHashMap> filters) { + return Result.get().classes(classes).vod(list).filters(filters).string(); + } + + public static String string(List classes, List list, JSONObject filters) { + return Result.get().classes(classes).vod(list).filters(filters).string(); + } + + public static String string(List classes, List list) { + return Result.get().classes(classes).vod(list).string(); + } + + public static String string(List list) { + return Result.get().vod(list).string(); + } + + public static String string(Vod item) { + return Result.get().vod(item).string(); + } + 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) { + public Result classes(List classes) { this.classes = classes; - this.list = list; + return this; } - public Result(List classes, LinkedHashMap> filters) { - this.classes = classes; + public Result vod(List list) { + this.list = list; + return this; + } + + public Result vod(Vod item) { + this.list = Arrays.asList(item); + return this; + } + + public Result filters(LinkedHashMap> filters) { this.filters = filters; + return this; } - 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; - } - - public void setList(List list) { - this.list = list; - } - - public List getList() { - return list == null ? Collections.emptyList() : list; - } - - public void setFilters(JSONObject object) { + public Result filters(JSONObject object) { Type listType = new TypeToken>>() { }.getType(); this.filters = new Gson().fromJson(object.toString(), listType); + return this; } public Result header(HashMap header) { @@ -118,6 +100,14 @@ public class Result { return this; } + public List getList() { + return list == null ? Collections.emptyList() : list; + } + + public String string() { + return toString(); + } + @NotNull @Override public String toString() { 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 ee7ee40d..9fe41acd 100644 --- a/app/src/main/java/com/github/catvod/spider/Biubiu.java +++ b/app/src/main/java/com/github/catvod/spider/Biubiu.java @@ -14,7 +14,6 @@ import org.json.JSONArray; import org.json.JSONObject; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.regex.Matcher; @@ -42,15 +41,13 @@ public class Biubiu extends Spider { @Override public String homeContent(boolean filter) { fetchRule(); - Result result = new Result(); List classes = new ArrayList<>(); String[] fenleis = getRuleVal("fenlei", "").split("#"); for (String fenlei : fenleis) { String[] info = fenlei.split("\\$"); classes.add(new Class(info[0], info[1])); } - result.setClasses(classes); - return result.toString(); + return Result.get().classes(classes).string(); } @Override @@ -67,9 +64,7 @@ public class Biubiu extends Spider { if (videos.size() >= 30) break; } } - Result result = new Result(); - result.setList(videos); - return result.toString(); + return Result.string(videos); } private Result category(String tid, String pg) { @@ -103,9 +98,7 @@ public class Biubiu extends Spider { break; } } - Result result = new Result(); - result.setList(videos); - return result; + return Result.get().vod(videos); } @Override @@ -160,16 +153,14 @@ public class Biubiu extends Spider { for (int i = 0; i < playList.size(); i++) playFrom.add("播放列表" + (i + 1)); video.setVodPlayFrom(TextUtils.join("$$$", playFrom)); video.setVodPlayUrl(TextUtils.join("$$$", playList)); - Result result = new Result(); - result.setList(Arrays.asList(video)); - return result.toString(); + return Result.string(video); } @Override public String playerContent(String flag, String id, List vipFlags) { fetchRule(); String webUrl = getRuleVal("url") + id; - return Result.get().parse().url(webUrl).toString(); + return Result.get().parse().url(webUrl).string(); } @Override @@ -225,9 +216,7 @@ public class Biubiu extends Spider { } } } - Result result = new Result(); - result.setList(videos); - return result.toString(); + return Result.string(videos); } catch (Exception e) { e.printStackTrace(); return ""; 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 c2bdbdd9..4bdee15b 100644 --- a/app/src/main/java/com/github/catvod/spider/Dm84.java +++ b/app/src/main/java/com/github/catvod/spider/Dm84.java @@ -79,7 +79,7 @@ public class Dm84 extends Spider { String id = url.split("/")[2]; videos.add(new Vod(id, name, img, remark)); } - return Result.get(classes, filters, videos); + return Result.string(classes, videos, filters); } @Override @@ -101,7 +101,7 @@ public class Dm84 extends Spider { String id = url.split("/")[2]; videos.add(new Vod(id, name, img, remark)); } - return Result.get(videos); + return Result.string(videos); } @Override @@ -149,7 +149,7 @@ public class Dm84 extends Spider { vod.setVodPlayFrom(TextUtils.join("$$$", sites.keySet())); vod.setVodPlayUrl(TextUtils.join("$$$", sites.values())); } - return Result.get(vod); + return Result.string(vod); } @Override @@ -165,13 +165,13 @@ public class Dm84 extends Spider { String id = url.split("/")[2]; videos.add(new Vod(id, name, img, remark)); } - return Result.get(videos); + return Result.string(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"); - return Result.get().url(url).parse().header(getHeaders()).toString(); + return Result.get().url(url).parse().header(getHeaders()).string(); } } 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 a7ee4d86..ae3726ce 100644 --- a/app/src/main/java/com/github/catvod/spider/XPath.java +++ b/app/src/main/java/com/github/catvod/spider/XPath.java @@ -19,7 +19,6 @@ import org.seimicrawler.xpath.JXNode; import java.net.URLEncoder; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Set; @@ -44,7 +43,6 @@ public class XPath extends Spider { @Override public String homeContent(boolean filter) { fetchRule(); - Result result = new Result(); List videos = new ArrayList<>(); List classes = new ArrayList<>(); if (rule.getCateManual().size() > 0) { @@ -85,10 +83,7 @@ public class XPath extends Spider { videos.add(new Vod(id, name, pic, mark)); } } - result.setList(videos); - result.setClasses(classes); - result.setFilters(filter && rule.getFilter() != null ? rule.getFilter() : null); - return result.toString(); + return Result.string(classes, videos, rule.getFilter()); } @Override @@ -127,9 +122,7 @@ public class XPath extends Spider { } videos.add(new Vod(id, name, pic, mark)); } - Result result = new Result(); - result.setList(videos); - return result.toString(); + return Result.string(videos); } protected void detailContentExt(String content, Vod vod) { @@ -262,9 +255,7 @@ public class XPath extends Spider { vod.setVodPlayFrom(vod_play_from); vod.setVodPlayUrl(vod_play_url); detailContentExt(webContent, vod); - Result result = new Result(); - result.setList(Arrays.asList(vod)); - return result.toString(); + return Result.string(vod); } @Override @@ -282,7 +273,6 @@ public class XPath extends Spider { if (rule.getSearchUrl().isEmpty()) return ""; String webUrl = rule.getSearchUrl().replace("{wd}", URLEncoder.encode(key)); String webContent = fetch(webUrl); - Result result = new Result(); List videos = new ArrayList<>(); if (rule.getSearchVodNode().startsWith("json:")) { String[] node = rule.getSearchVodNode().substring(5).split(">"); @@ -330,8 +320,7 @@ public class XPath extends Spider { videos.add(new Vod(id, name, pic, mark)); } } - result.setList(videos); - return result.toString(); + return Result.string(videos); } catch (Exception e) { SpiderDebug.log(e); return ""; 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 7631a696..92d7694f 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 @@ -18,7 +18,6 @@ import org.jsoup.select.Elements; import java.net.URLDecoder; import java.util.ArrayList; -import java.util.Arrays; import java.util.Calendar; import java.util.HashMap; import java.util.List; @@ -108,7 +107,6 @@ public class Anime1 extends Spider { subobj.put("team", srcOrign.getJSONArray(i).get(5).toString()); srcArray.put(subobj); } - Result result = new Result(); List classes = new ArrayList<>(); Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR) + 1; @@ -129,9 +127,7 @@ public class Anime1 extends Spider { String mark = srcArray.getJSONObject(i).getString("hit"); videos.add(new Vod(id, name, vodPic, mark)); } - result.setClasses(classes); - result.setList(videos); - return result.toString(); + return Result.string(classes, videos); } catch (Exception e) { SpiderDebug.log(e); return ""; @@ -177,9 +173,7 @@ public class Anime1 extends Spider { String mark = array.getJSONObject(i).getString("hit"); videos.add(new Vod(id, name, vodPic, mark)); } - Result result = new Result(); - result.setList(videos); - return result.toString(); + return Result.string(videos); } catch (Exception e) { SpiderDebug.log(e); return ""; @@ -202,7 +196,6 @@ public class Anime1 extends Spider { String season = dtinfo.getString("season"); String team = dtinfo.getString("team"); - Result result = new Result(); Vod vod = new Vod(); vod.setVodId(ids.get(0)); vod.setVodName(title); @@ -292,8 +285,7 @@ public class Anime1 extends Spider { vod_play.put("Anime1", playList); vod.setVodPlayFrom(TextUtils.join("$$$", vod_play.keySet())); vod.setVodPlayUrl(TextUtils.join("$$$", vod_play.values())); - result.setList(Arrays.asList(vod)); - return result.toString(); + return Result.string(vod); } catch (Exception e) { SpiderDebug.log(e); return ""; @@ -363,7 +355,6 @@ public class Anime1 extends Spider { String kw = srobj.getString("name"); if (kw.contains(key)) searchResult.put(srobj); } - Result result = new Result(); List videos = new ArrayList<>(); if (searchResult.length() > 0) { int ch = Math.min(searchResult.length(), 10); @@ -374,8 +365,7 @@ public class Anime1 extends Spider { videos.add(new Vod(id, name, vodPic, mark)); } } - result.setList(videos); - return result.toString(); + return Result.string(videos); } catch (Exception e) { SpiderDebug.log(e); return ""; diff --git a/app/src/main/java/com/github/catvod/spider/wait/Tangrenjie.java b/app/src/main/java/com/github/catvod/spider/wait/Tangrenjie.java index 2e64abeb..24a75333 100644 --- a/app/src/main/java/com/github/catvod/spider/wait/Tangrenjie.java +++ b/app/src/main/java/com/github/catvod/spider/wait/Tangrenjie.java @@ -21,7 +21,6 @@ import org.jsoup.select.Elements; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -90,11 +89,7 @@ public class Tangrenjie extends Spider { String id = "1=" + matcher.group(1); videos.add(new Vod(id, title, cover, remark)); } - Result result = new Result(); - result.setFilters(filterConfig); - result.setClasses(classes); - result.setList(videos); - return result.toString(); + return Result.string(classes, videos, filterConfig); } @Override @@ -129,9 +124,7 @@ public class Tangrenjie extends Spider { videos.add(new Vod(id, title, cover, remark)); } } - Result result = new Result(); - result.setList(videos); - return result.toString(); + return Result.string(videos); } @Override @@ -148,7 +141,6 @@ public class Tangrenjie extends Spider { htmlsrc = htmltemp; } Document doc = Jsoup.parse(htmlsrc); - Result result = new Result(); String vid = doc.selectFirst("div.content_thumb a").attr("href"); String cover = siteUrl + doc.selectFirst("div.content_thumb a").attr("data-original"); String title = doc.selectFirst("div.content_thumb a").attr("title"); @@ -250,8 +242,7 @@ public class Tangrenjie extends Spider { vod.setVodPlayFrom(TextUtils.join("$$$", vod_play.keySet())); vod.setVodPlayUrl(TextUtils.join("$$$", vod_play.values())); } - result.setList(Arrays.asList(vod)); - return result.toString(); + return Result.string(vod); } @Override @@ -305,7 +296,6 @@ public class Tangrenjie extends Spider { String url = siteUrl + "/vod/search.html?wd=" + URLEncoder.encode(key) + "&submit="; String html = OkHttpUtil.string(url, getHeaders()); Document doc = Jsoup.parse(html); - Result result = new Result(); List videos = new ArrayList<>(); Elements list = doc.select("li.searchlist_item"); for (int i = 0; i < list.size(); i++) { @@ -334,7 +324,6 @@ public class Tangrenjie extends Spider { String id = tid + "=" + matcher.group(1); videos.add(new Vod(id, title, cover, remark)); } - result.setList(videos); - return result.toString(); + return Result.string(videos); } }