Clean code

This commit is contained in:
FongMi 2022-08-23 23:38:46 +08:00
parent d6da8b6e21
commit f078d28b72
6 changed files with 67 additions and 120 deletions

View File

@ -29,73 +29,55 @@ public class Result {
@SerializedName("url")
private String url;
public static String string(List<Class> classes, List<Vod> list, LinkedHashMap<String, List<Filter>> filters) {
return Result.get().classes(classes).vod(list).filters(filters).string();
}
public static String string(List<Class> classes, List<Vod> list, JSONObject filters) {
return Result.get().classes(classes).vod(list).filters(filters).string();
}
public static String string(List<Class> classes, List<Vod> list) {
return Result.get().classes(classes).vod(list).string();
}
public static String string(List<Vod> 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<Class> classes, List<Vod> list) {
return new Result(classes, list).toString();
}
public static String get(List<Class> classes, LinkedHashMap<String, List<Filter>> filters) {
return new Result(classes, filters).toString();
}
public static String get(List<Class> classes, LinkedHashMap<String, List<Filter>> filters, List<Vod> list) {
return new Result(classes, filters, list).toString();
}
public static String get(List<Vod> list) {
return new Result(list).toString();
}
public static String get(Vod vod) {
return new Result(vod).toString();
}
public Result() {
}
public Result(List<Vod> list) {
this.list = list;
}
public Result(List<Class> classes, List<Vod> list) {
public Result classes(List<Class> classes) {
this.classes = classes;
this.list = list;
return this;
}
public Result(List<Class> classes, LinkedHashMap<String, List<Filter>> filters) {
this.classes = classes;
public Result vod(List<Vod> list) {
this.list = list;
return this;
}
public Result vod(Vod item) {
this.list = Arrays.asList(item);
return this;
}
public Result filters(LinkedHashMap<String, List<Filter>> filters) {
this.filters = filters;
return this;
}
public Result(List<Class> classes, LinkedHashMap<String, List<Filter>> filters, List<Vod> list) {
this.classes = classes;
this.filters = filters;
this.list = list;
}
public Result(Vod vod) {
this.list = Arrays.asList(vod);
}
public void setClasses(List<Class> classes) {
this.classes = classes;
}
public void setList(List<Vod> list) {
this.list = list;
}
public List<Vod> getList() {
return list == null ? Collections.emptyList() : list;
}
public void setFilters(JSONObject object) {
public Result filters(JSONObject object) {
Type listType = new TypeToken<LinkedHashMap<String, List<Filter>>>() {
}.getType();
this.filters = new Gson().fromJson(object.toString(), listType);
return this;
}
public Result header(HashMap<String, String> header) {
@ -118,6 +100,14 @@ public class Result {
return this;
}
public List<Vod> getList() {
return list == null ? Collections.emptyList() : list;
}
public String string() {
return toString();
}
@NotNull
@Override
public String toString() {

View File

@ -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<Class> 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<String> 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 "";

View File

@ -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<String> 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();
}
}

View File

@ -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<Vod> videos = new ArrayList<>();
List<Class> 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<Vod> 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 "";

View File

@ -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<Class> 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<Vod> 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 "";

View File

@ -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<Vod> 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);
}
}