parent
185bbb367c
commit
e9b901fe62
|
|
@ -9,10 +9,14 @@ import com.github.catvod.bean.Filter;
|
||||||
import com.github.catvod.bean.Result;
|
import com.github.catvod.bean.Result;
|
||||||
import com.github.catvod.bean.Vod;
|
import com.github.catvod.bean.Vod;
|
||||||
import com.github.catvod.crawler.Spider;
|
import com.github.catvod.crawler.Spider;
|
||||||
|
import com.github.catvod.crawler.SpiderDebug;
|
||||||
import com.github.catvod.net.OkHttp;
|
import com.github.catvod.net.OkHttp;
|
||||||
import com.github.catvod.utils.LZString;
|
import com.github.catvod.utils.LZString;
|
||||||
|
import com.github.catvod.utils.Strings;
|
||||||
import com.github.catvod.utils.Util;
|
import com.github.catvod.utils.Util;
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
|
||||||
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
|
@ -23,6 +27,7 @@ import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author leospring
|
* @author leospring
|
||||||
|
|
@ -119,7 +124,8 @@ public class Living extends Spider {
|
||||||
String url = host + "/api/" + tid + "/getCategories";
|
String url = host + "/api/" + tid + "/getCategories";
|
||||||
JSONObject json = request(url);
|
JSONObject json = request(url);
|
||||||
String type = extend.get("type");
|
String type = extend.get("type");
|
||||||
if (TextUtils.isEmpty(type)) type = json.optJSONArray("data").optJSONObject(0).optString("id");
|
if (TextUtils.isEmpty(type))
|
||||||
|
type = json.optJSONArray("data").optJSONObject(0).optString("id");
|
||||||
List<Vod> vodList = new ArrayList<>();
|
List<Vod> vodList = new ArrayList<>();
|
||||||
for (int i = 0; i < json.optJSONArray("data").length(); i++) {
|
for (int i = 0; i < json.optJSONArray("data").length(); i++) {
|
||||||
JSONObject data = json.optJSONArray("data").optJSONObject(i);
|
JSONObject data = json.optJSONArray("data").optJSONObject(i);
|
||||||
|
|
@ -134,7 +140,8 @@ public class Living extends Spider {
|
||||||
} else {
|
} else {
|
||||||
String[] split = tid.split("_");
|
String[] split = tid.split("_");
|
||||||
String url = host + "/api/" + split[0] + "/getCategoryRooms?id=" + split[1] + "&pid=" + (split[0].equals("bilibili") ? "2" : "1") + "&page=" + pg;
|
String url = host + "/api/" + split[0] + "/getCategoryRooms?id=" + split[1] + "&pid=" + (split[0].equals("bilibili") ? "2" : "1") + "&page=" + pg;
|
||||||
if (!TextUtils.isEmpty(cookie)) url = url + "&cookie=" + URLDecoder.decode(cookie, "UTF-8");
|
if (!TextUtils.isEmpty(cookie))
|
||||||
|
url = url + "&cookie=" + URLDecoder.decode(cookie, "UTF-8");
|
||||||
JSONObject json = request(url);
|
JSONObject json = request(url);
|
||||||
if (!TextUtils.isEmpty(json.optJSONObject("data").optString("cookie"))) {
|
if (!TextUtils.isEmpty(json.optJSONObject("data").optString("cookie"))) {
|
||||||
cookie = json.optJSONObject("data").optString("cookie");
|
cookie = json.optJSONObject("data").optString("cookie");
|
||||||
|
|
@ -185,6 +192,45 @@ public class Living extends Spider {
|
||||||
return Result.string(vod);
|
return Result.string(vod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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 {
|
||||||
|
List<Vod> vodList = new ArrayList<>();
|
||||||
|
vodList.addAll(searchWithSite("huya", key, quick, pg));
|
||||||
|
vodList.addAll(searchWithSite("douyu", key, quick, pg));
|
||||||
|
vodList.addAll(searchWithSite("douyin", key, quick, pg));
|
||||||
|
vodList.addAll(searchWithSite("bilibili", key, quick, pg));
|
||||||
|
return Result.string(vodList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getSiteNameByEn(String en) {
|
||||||
|
return Objects.equals(en, "huya") ? "虎牙"
|
||||||
|
: Objects.equals(en, "douyu") ? "斗鱼"
|
||||||
|
: Objects.equals(en, "douyin") ? "抖音"
|
||||||
|
: Objects.equals(en, "bilibili") ? "哔哩哔哩"
|
||||||
|
: Objects.equals(en, "cc") ? "网易CC" : "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Vod> searchWithSite(String site, String key, boolean quick, String pg) {
|
||||||
|
List<Vod> vodList = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
String url = host + "/api/" + site + "/searchRooms?page=" + pg + "&kw=" + key;
|
||||||
|
JSONArray jsonArray = request(url).optJSONObject("data").optJSONArray("list");
|
||||||
|
for (int i = 0; i < jsonArray.length(); i++) {
|
||||||
|
JSONObject item = jsonArray.getJSONObject(i);
|
||||||
|
vodList.add(new Vod(site + "_" + item.optString("roomId"), item.optString("nickname"), item.optString("cover")
|
||||||
|
, getSiteNameByEn(site) + "/" + item.optString("category") + "/" + item.optString("title"), false));
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
//ing
|
||||||
|
}
|
||||||
|
return vodList;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String playerContent(String flag, String id, List<String> vipFlags) throws Exception {
|
public String playerContent(String flag, String id, List<String> vipFlags) throws Exception {
|
||||||
String url = id;
|
String url = id;
|
||||||
|
|
@ -206,7 +252,9 @@ public class Living extends Spider {
|
||||||
}
|
}
|
||||||
|
|
||||||
private JSONObject request(String url) throws JSONException {
|
private JSONObject request(String url) throws JSONException {
|
||||||
String str = OkHttp.string(url, Map.of("sec-fetch-site", "same-origin"));
|
HashMap<String, String> map = new HashMap<>();
|
||||||
|
map.put("sec-fetch-site", "same-origin");
|
||||||
|
String str = OkHttp.string(url, map);
|
||||||
String result = LZString.decompressFromBase64(str.replaceAll(" ", ""));
|
String result = LZString.decompressFromBase64(str.replaceAll(" ", ""));
|
||||||
return new JSONObject(result);
|
return new JSONObject(result);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue