Support xiaoya search

This commit is contained in:
FongMi 2023-09-26 10:20:47 +08:00
parent 1688807361
commit 77e0169647
5 changed files with 35 additions and 1 deletions

View File

@ -136,6 +136,10 @@ public class Drive {
return getHost() + (isNew() ? "/api/fs/search" : "/api/public/search"); return getHost() + (isNew() ? "/api/fs/search" : "/api/public/search");
} }
public String searchApi(String param) {
return getHost() + "/search?box=" + param + "&url=&type=video";
}
public Drive check() { public Drive check() {
if (path == null) setPath(Uri.parse(getServer()).getPath()); if (path == null) setPath(Uri.parse(getServer()).getPath());
if (version == 0) setVersion(OkHttp.string(settingsApi()).contains("v2.") ? 2 : 3); if (version == 0) setVersion(OkHttp.string(settingsApi()).contains("v2.") ? 2 : 3);

View File

@ -72,6 +72,10 @@ public class Item {
return TextUtils.isEmpty(thumb) ? "" : thumb; return TextUtils.isEmpty(thumb) ? "" : thumb;
} }
public void setThumb(String thumb) {
this.thumb = thumb;
}
public String getUrl() { public String getUrl() {
return TextUtils.isEmpty(url) ? "" : url.startsWith("//") ? "http:" + url : url; return TextUtils.isEmpty(url) ? "" : url.startsWith("//") ? "http:" + url : url;
} }

View File

@ -17,6 +17,9 @@ import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Utils; import com.github.catvod.utils.Utils;
import org.json.JSONObject; import org.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -251,6 +254,29 @@ public class AList extends Spider {
@Override @Override
public List<Vod> call() { public List<Vod> call() {
List<Vod> alist = alist();
return alist.size() > 0 ? alist : xiaoya();
}
private List<Vod> xiaoya() {
List<Vod> list = new ArrayList<>();
Document doc = Jsoup.parse(OkHttp.string(drive.searchApi(keyword)));
for (Element a : doc.select("ul > a")) {
String[] splits = a.text().split("#");
if (!splits[0].contains("/")) continue;
int index = splits[0].lastIndexOf("/");
boolean folder = splits.length > 1;
Item item = new Item();
item.setType(folder ? 1 : 0);
item.setThumb(splits.length > 3 ? splits[4] : "");
item.setPath("/" + splits[0].substring(0, index));
item.setName(splits[0].substring(index + 1));
list.add(item.getVod(drive, vodPic));
}
return list;
}
private List<Vod> alist() {
try { try {
List<Vod> list = new ArrayList<>(); List<Vod> list = new ArrayList<>();
String response = post(drive, drive.searchApi(), drive.params(keyword)); String response = post(drive, drive.searchApi(), drive.params(keyword));

Binary file not shown.

View File

@ -1 +1 @@
a04665ee58c5c24676bd43b11a01e918 ae892558d47c58a60932c7552fbc4bc7