From d05f3f042bcd367a1fa7f6eefe01ce9fd313d788 Mon Sep 17 00:00:00 2001
From: Corner
Date: Sun, 15 Dec 2024 21:05:10 +0800
Subject: [PATCH] feat: xb6v
---
jar/spider.jar | Bin 520453 -> 526906 bytes
json/config.json | 11 +-
json/configAll.json | 2 +-
.../java/com/github/catvod/spider/Xb6v.java | 237 ++++++++++++++++++
src/test/java/Xb6vTest.kt | 36 +++
5 files changed, 284 insertions(+), 2 deletions(-)
create mode 100644 src/main/java/com/github/catvod/spider/Xb6v.java
create mode 100644 src/test/java/Xb6vTest.kt
diff --git a/jar/spider.jar b/jar/spider.jar
index 6763ec8e88666195d7fa45ccc8d2c82b78c29028..370bf0a716f51c78160e25790b09788c49086e76 100644
GIT binary patch
delta 22683
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
B!v_EW
delta 16293
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 getHeader() {
+ Map header = new HashMap<>();
+ header.put("User-Agent", Utils.CHROME);
+ header.put("Referer", siteUrl + "/");
+ return header;
+ }
+
+ private Map getDetailHeader() {
+ Map header = new HashMap<>();
+ header.put("User-Agent", Utils.CHROME);
+ return header;
+ }
+
+ @Override
+ public String homeContent(boolean filter) throws Exception {
+ List classes = new ArrayList<>();
+ String html = OkHttp.string(siteUrl, getHeader());
+ Document doc = Jsoup.parse(html);
+ Elements elements = doc.select("#menus > li > a");
+ LinkedHashMap> filters = new LinkedHashMap<>();
+ for (int i = 0; i < elements.size(); i++) {
+ if (i < 2 || i == elements.size() - 1) continue;
+ Element e = elements.get(i);
+ String typeId = e.attr("href");
+ String typeName = e.text();
+ if (typeName.equals("电视剧")) {
+ List values = new ArrayList<>();
+ values.add(new Filter.Value("不限", ""));
+ for (Element a : e.nextElementSibling().select("a")) {
+ values.add(new Filter.Value(a.text(), a.attr("href").replaceAll(typeId, "")));
+ }
+ List filterList = new ArrayList<>();
+ filterList.add(new Filter("cateId", "类型", values));
+ filters.put(typeId, filterList);
+ }
+ classes.add(new Class(typeId, typeName));
+ }
+ return Result.string(classes, parseVodListFromDoc(doc), filters);
+ }
+
+ private List parseVodListFromDoc(String html) {
+ return parseVodListFromDoc(Jsoup.parse(html));
+ }
+
+ private List parseVodListFromDoc(Document doc) {
+ Elements items = doc.select("#post_container .post_hover");
+ List list = new ArrayList<>();
+ for (Element item : items) {
+ Element element = item.select("[class=zoom]").get(0);
+ String vodId = element.attr("href");
+ String name = element.attr("title").replaceAll("?[^>]+>", "");
+ String pic = element.select("img").attr("src");
+ String remark = item.select("[rel=category tag]").text();
+ list.add(new Vod(vodId, name, pic, remark));
+ }
+ return list;
+ }
+
+ @Override
+ public String categoryContent(String tid, String pg, boolean filter, HashMap extend) throws Exception {
+ String cateId = extend.get("cateId") == null ? "" : extend.get("cateId");
+ String cateUrl = siteUrl + tid + cateId;
+ if (!pg.equals("1")) cateUrl += "index_" + pg + ".html";
+ String html = OkHttp.string(cateUrl, getHeader());
+ Document doc = Jsoup.parse(html);
+ String href = doc.select(".pagination > a").last().attr("href");
+ int page = Integer.parseInt(pg);
+ int count = Integer.parseInt(getStrByRegex(Pattern.compile("index_(.*?).html"), href));
+ int limit = 18;
+ Elements items = doc.select("#post_container .post_hover");
+ int total = page == count ? (page - 1) * limit + items.size() : count * limit;
+ return Result.get().vod(parseVodListFromDoc(doc)).page(page, count, limit, total).string();
+ }
+
+ @Override
+ public String detailContent(List ids) throws Exception {
+ String vodId = ids.get(0);
+ String detailUrl = siteUrl + vodId;
+ String html = OkHttp.string(detailUrl, getDetailHeader());
+ Document doc = Jsoup.parse(html);
+ Elements sourceList = doc.select("#post_content");
+
+ String circuitName = "磁力线路";
+ Map playMap = new LinkedHashMap<>();
+ int i = 0;
+ for (Element source : sourceList) {
+ Elements aList = source.select("table a");
+ List vodItems = new ArrayList<>();
+ for (Element a : aList) {
+ String episodeUrl = a.attr("href");
+ String episodeName = a.text();
+ if (!episodeUrl.toLowerCase().startsWith("magnet")) continue;
+ vodItems.add(episodeName + "$" + episodeUrl);
+ }
+ if (vodItems.size() > 0) {
+ i++;
+ playMap.put(circuitName + i, StringUtils.join(vodItems, "#"));
+ }
+ }
+
+ String partHTML = doc.select(".context").html();
+ String name = doc.select(".article_container > h1").text();
+ String pic = doc.select("#post_content img").attr("src");
+ String typeName = getStrByRegex(Pattern.compile("◎类 别 (.*?)
"), partHTML);
+ if (typeName.equals("")) typeName = doc.select("[rel=category tag]").text();
+ String year = getStrByRegex(Pattern.compile("◎年 代 (.*?)
"), partHTML);
+ if (year.equals("")) year = getStrByRegex(Pattern.compile("首播:(.*?)
"), partHTML);
+ String area = getStrByRegex(Pattern.compile("◎产 地 (.*?)
"), partHTML);
+ if (area.equals("")) area = getStrByRegex(Pattern.compile("地区:(.*?)
"), partHTML);
+ String remark = getStrByRegex(Pattern.compile("◎上映日期 (.*?)
"), partHTML);
+ String actor = getActorOrDirector(Pattern.compile("◎演 员 (.*?)
"), partHTML);
+ if (actor.equals("")) actor = getActorOrDirector(Pattern.compile("◎主 演 (.*?)"), partHTML);
+ if (actor.equals("")) actor = getActorOrDirector(Pattern.compile("主演:(.*?)
"), partHTML);
+ String director = getActorOrDirector(Pattern.compile("◎导 演 (.*?)
"), partHTML);
+ if (director.equals("")) director = getActorOrDirector(Pattern.compile("导演:(.*?)
"), partHTML);
+ String description = getDescription(Pattern.compile("◎简 介(.*?)
", Pattern.CASE_INSENSITIVE | Pattern.DOTALL), partHTML);
+ if (description.equals("")) description = getDescription(Pattern.compile("简介(.*?)", Pattern.CASE_INSENSITIVE | Pattern.DOTALL), partHTML);
+
+ Vod vod = new Vod();
+ vod.setVodId(ids.get(0));
+ vod.setVodName(name);
+ vod.setVodPic(pic);
+ vod.setTypeName(typeName);
+ vod.setVodYear(year);
+ vod.setVodArea(area);
+ vod.setVodRemarks(remark);
+ vod.setVodActor(actor);
+ vod.setVodDirector(director);
+ vod.setVodContent(description);
+ vod.setVodPlayFrom(StringUtils.join(playMap.keySet(), "$$$"));
+ vod.setVodPlayUrl(StringUtils.join(playMap.values(), "$$$"));
+
+ return Result.string(vod);
+ }
+
+ private String getStrByRegex(Pattern pattern, String str) {
+ Matcher matcher = pattern.matcher(str);
+ if (matcher.find()) return matcher.group(1).trim();
+ return "";
+ }
+
+ private String getActorOrDirector(Pattern pattern, String str) {
+ return getStrByRegex(pattern, str)
+ .replaceAll("
", "")
+ .replaceAll(" ", "")
+ .replaceAll("&", "")
+ .replaceAll("middot;", "・")
+ .replaceAll(" ", ",")
+ .replaceAll(" ", ",")
+ .replaceAll(" ", "");
+ }
+
+ private String getDescription(Pattern pattern, String str) {
+ return getStrByRegex(pattern, str)
+ .replaceAll("?[^>]+>", "")
+ .replaceAll("\n", "")
+ .replaceAll("&", "")
+ .replaceAll("middot;", "・")
+ .replaceAll("ldquo;", "【")
+ .replaceAll("rdquo;", "】")
+ .replaceAll(" ", "");
+ }
+
+ @Override
+ public String searchContent(String key, boolean quick) throws Exception {
+ return searchContent(key, quick, "1");
+ }
+
+ @Override
+ public String searchContent(String key, boolean quick, String pg) throws Exception {
+ String searchUrl = siteUrl + Utils.base64Decode("L2Uvc2VhcmNoLzFpbmRleC5waHA=");
+ if (pg.equals("1")) {
+ RequestBody formBody = new FormBody.Builder()
+ .add("show", "title")
+ .add("tempid", "1")
+ .add("tbname", "article")
+ .add("mid", "1")
+ .add("dopost", "search")
+ .add("submit", "")
+ .addEncoded("keyboard", key)
+ .build();
+ Request request = new Request.Builder().url(searchUrl)
+ .addHeader("User-Agent", Utils.CHROME)
+ .addHeader("Origin", siteUrl)
+ .addHeader("Referer", siteUrl + "/")
+ .post(formBody)
+ .build();
+ Response response = OkHttp.newCall(request);
+ String[] split = String.valueOf(response.request().url()).split("\\?searchid=");
+ nextSearchUrlPrefix = split[0] + "index.php?page=";
+ nextSearchUrlSuffix = "&searchid=" + split[1];
+ return Result.string(parseVodListFromDoc(response.body().string()));
+ } else {
+ int page = Integer.parseInt(pg) - 1;
+ searchUrl = nextSearchUrlPrefix + page + nextSearchUrlSuffix;
+ return Result.string(parseVodListFromDoc(OkHttp.string(searchUrl, getHeader())));
+ }
+ }
+
+ @Override
+ public String playerContent(String flag, String id, List vipFlags) throws Exception {
+ return Result.get().url(id).string();
+ }
+}
diff --git a/src/test/java/Xb6vTest.kt b/src/test/java/Xb6vTest.kt
new file mode 100644
index 0000000..3f1fad3
--- /dev/null
+++ b/src/test/java/Xb6vTest.kt
@@ -0,0 +1,36 @@
+import com.github.catvod.spider.Xb6v
+import common.TestInterface
+import org.junit.jupiter.api.Test
+
+class Xb6vTest: TestInterface {
+ override var t: Xb6v
+ get() = Xb6v()
+ set(value) {}
+
+ @Test
+ override fun homeTest() {
+ val homeContent = t.homeContent(false)
+ assert(homeContent)
+ }
+
+ @Test
+ override fun cateTest() {
+ val categoryContent = t.categoryContent("/xijupian/", "1", false, hashMapOf())
+ assert(categoryContent)
+ }
+
+ @Test
+ override fun detailTest() {
+ val detailContent = t.detailContent(listOf("/xijupian/25112.html"))
+ assert(detailContent)
+ }
+
+ override fun playTest() {
+ }
+
+ @Test
+ override fun searchTest() {
+ val searchContent = t.searchContent("阿凡达", false)
+ assert(searchContent)
+ }
+}
\ No newline at end of file