first commit

This commit is contained in:
T00700
2022-12-02 13:36:22 +08:00
commit 236efd9a7f
1515 changed files with 326020 additions and 0 deletions
+252
View File
@@ -0,0 +1,252 @@
package com.github.catvod.spider;
import android.content.Context;
import com.github.catvod.crawler.Spider;
import com.github.catvod.crawler.SpiderDebug;
import com.github.catvod.utils.okhttp.OkHttpUtil;
import org.json.JSONArray;
import org.json.JSONObject;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
/**
* 嗯哩嗯哩
* <p>
* Author: 群友 不负此生
*/
public class Enlienli extends Spider {
private String siteUrl = "https://api.app.kongbuya.com";
@Override
public void init(Context context) {
super.init(context);
}
private HashMap<String, String> getHeaders(String url) {
HashMap<String, String> headers = new HashMap<>();
headers.put("Connection", "Keep-Alive");
headers.put("User-Agent", "okhttp/4.0.1");
return headers;
}
@Override
public String homeContent(boolean filter) {
try {
JSONArray jsonArray = new JSONArray(OkHttpUtil.string(siteUrl + "/api.php/provide/home_nav?", getHeaders(siteUrl)));
JSONArray classes = new JSONArray();
JSONObject filterConfig = new JSONObject();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jObj = jsonArray.getJSONObject(i);
String typeName = jObj.getString("name");
String typeId = jObj.getString("id");
if (typeName.equals("推荐")) {
continue;
}
JSONObject newCls = new JSONObject();
newCls.put("type_id", typeId);
newCls.put("type_name", typeName);
classes.put(newCls);
try {
JSONArray typeExtend = jObj.getJSONArray("msg");
JSONArray extendsAll = new JSONArray();
for (int j = 0; j < typeExtend.length(); j++) {
JSONObject typeExtendObj = typeExtend.getJSONObject(j);
String typeExtendKey = typeExtendObj.getString("name");
JSONArray newTypeExtendKeys = typeExtendObj.getJSONArray("data");
if (newTypeExtendKeys.length() <= 1)
continue;
String typeExtendName = newTypeExtendKeys.getString(0);
JSONObject newTypeExtend = new JSONObject();
newTypeExtend.put("key", typeExtendKey);
newTypeExtend.put("name", typeExtendName);
JSONArray newTypeExtendKV = new JSONArray();
{
JSONObject kvAll = new JSONObject();
kvAll.put("n", "全部");
kvAll.put("v", "");
newTypeExtendKV.put(kvAll);
}
for (int k = 1; k < newTypeExtendKeys.length(); k++) {
JSONObject kv = new JSONObject();
kv.put("n", newTypeExtendKeys.getString(k));
kv.put("v", newTypeExtendKeys.getString(k));
newTypeExtendKV.put(kv);
}
newTypeExtend.put("value", newTypeExtendKV);
extendsAll.put(newTypeExtend);
}
filterConfig.put(typeId, extendsAll);
} catch (Exception e) {
SpiderDebug.log(e);
}
}
JSONObject result = new JSONObject();
result.put("class", classes);
if (filter) {
result.put("filters", filterConfig);
}
return result.toString();
} catch (Exception e) {
SpiderDebug.log(e);
}
return "";
}
@Override
public String homeVideoContent() {
try {
String url = siteUrl + "/api.php/provide/home_data?page=1&id=0";
JSONObject jsonObject = new JSONObject(OkHttpUtil.string(url, getHeaders(url)));
JSONArray jsonArray = new JSONArray();
if (jsonObject.has("tv")) {
JSONArray data = jsonObject.getJSONObject("tv").getJSONArray("data");
for (int i = 0; i < data.length(); i++) {
jsonArray.put(data.getJSONObject(i));
}
}
if (jsonObject.has("video")) {
JSONArray vs = jsonObject.getJSONArray("video");
for (int i = 0; i < vs.length(); i++) {
JSONArray data = vs.getJSONObject(i).getJSONArray("data");
for (int j = 0; j < data.length(); j++) {
jsonArray.put(data.getJSONObject(j));
}
}
}
JSONArray videos = new JSONArray();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject vObj = jsonArray.getJSONObject(i);
JSONObject v = new JSONObject();
v.put("vod_id", vObj.getString("id"));
v.put("vod_name", vObj.getString("name"));
v.put("vod_pic", vObj.getString("img"));
v.put("vod_remarks", vObj.getString("qingxidu"));
videos.put(v);
}
JSONObject result = new JSONObject();
result.put("list", videos);
return result.toString();
} catch (Exception e) {
SpiderDebug.log(e);
}
return "";
}
@Override
public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) {
try {
String url = siteUrl + "/api.php/provide/vod_list?page=" + pg + "&id=" + tid;
Set<String> keys = extend.keySet();
for (String key : keys) {
url += "&" + key + "=" + URLEncoder.encode(extend.get(key));
}
JSONArray jsonArray = new JSONArray(OkHttpUtil.string(url, getHeaders(url)));
JSONArray videos = new JSONArray();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject vObj = jsonArray.getJSONObject(i);
JSONObject v = new JSONObject();
v.put("vod_id", vObj.getString("id"));
v.put("vod_name", vObj.getString("name"));
v.put("vod_pic", vObj.getString("img"));
v.put("vod_remarks", vObj.getString("qingxidu"));
videos.put(v);
}
JSONObject result = new JSONObject();
int limit = 20;
int page = Integer.parseInt(pg);
int total = Integer.MAX_VALUE;
int pageCount = videos.length() < 20 ? page : page + 1;
result.put("page", page);
result.put("pagecount", pageCount);
result.put("limit", limit);
result.put("total", total);
result.put("list", videos);
return result.toString();
} catch (Exception e) {
SpiderDebug.log(e);
}
return "";
}
@Override
public String detailContent(List<String> ids) {
try {
String url = siteUrl + "/api.php/provide/vod_detail?token=&id=" + ids.get(0) + "&ac=vod_detail";
JSONObject jsonObject = new JSONObject(OkHttpUtil.string(url, getHeaders(url)));
JSONObject vodList = new JSONObject();
vodList.put("vod_id", ids.get(0));
vodList.put("vod_name", jsonObject.getString("name"));
vodList.put("vod_pic", jsonObject.getString("img"));
vodList.put("type_name", jsonObject.getString("type"));
vodList.put("vod_year", "");
vodList.put("vod_area", "");
vodList.put("vod_remarks", jsonObject.getString("remarks"));
vodList.put("vod_actor", jsonObject.getString("actor"));
vodList.put("vod_director", jsonObject.getString("director"));
vodList.put("vod_content", jsonObject.getString("info"));
vodList.put("vod_play_from", jsonObject.getString("playcode"));
vodList.put("vod_play_url", jsonObject.getString("playlist"));
JSONObject result = new JSONObject();
JSONArray list = new JSONArray();
list.put(vodList);
result.put("list", list);
return result.toString();
} catch (Exception e) {
SpiderDebug.log(e);
}
return "";
}
@Override
public String playerContent(String flag, String id, List<String> vipFlags) {
try {
JSONObject result = new JSONObject();
result.put("parse", 0);
result.put("playUrl", "");
result.put("url", id);
return result.toString();
} catch (Exception e) {
SpiderDebug.log(e);
}
return "";
}
@Override
public String searchContent(String key, boolean quick) {
if (quick)
return "";
try {
String url = siteUrl + "/api.php/provide/search_result?video_name=" + URLEncoder.encode(key);
JSONObject jsonObject = new JSONObject(OkHttpUtil.string(url, getHeaders(url)));
JSONArray jsonArray = jsonObject.getJSONObject("result").getJSONArray("search_result");
JSONArray videos = new JSONArray();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject vObj = jsonArray.getJSONObject(i);
JSONObject v = new JSONObject();
v.put("vod_id", vObj.getString("id"));
v.put("vod_name", vObj.getString("video_name"));
v.put("vod_pic", vObj.getString("img"));
//v.put("vod_remarks", vObj.getString(""));
videos.put(v);
}
JSONObject result = new JSONObject();
result.put("list", videos);
return result.toString();
} catch (Exception e) {
SpiderDebug.log(e);
}
return "";
}
}