From c876c1b5e601c35f2b6c65f389a3258f5d799bb9 Mon Sep 17 00:00:00 2001 From: dlgt7 <102397160+dlgt7@users.noreply.github.com> Date: Sat, 8 Oct 2022 17:10:21 +0800 Subject: [PATCH] Add files via upload --- .../com/github/catvod/spider/Jianying.java | 296 ++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 app/src/main/java/com/github/catvod/spider/Jianying.java diff --git a/app/src/main/java/com/github/catvod/spider/Jianying.java b/app/src/main/java/com/github/catvod/spider/Jianying.java new file mode 100644 index 0000000..2717442 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Jianying.java @@ -0,0 +1,296 @@ +package com.github.catvod.spider; + +import android.annotation.TargetApi; +import android.content.Context; +import com.github.catvod.crawler.Spider; +import com.github.catvod.crawler.SpiderDebug; +import com.github.catvod.utils.CBC; +import com.github.catvod.utils.okhttp.OKCallBack; +import com.github.catvod.utils.okhttp.OkHttpUtil; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.List; +import okhttp3.Call; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; + + +public class Jianying extends Spider { + public static String token; + + + public void init(Context context, String str) { + super.init(context, str); + token = str; + } + + private HashMap getHeaders(String url) { + HashMap headers = new HashMap<>(); + headers.put("accept", "application/json, text/plain, */*"); + headers.put("accept-encoding", "gzip, deflate, br"); + headers.put("connection", "keep-alive"); + headers.put("Authorization", token); + headers.put("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"); + return headers; + } + + public String homeContent(boolean filter) { + try { + String url = "https://admin.syrme.top/v1/api/video/index"; + JSONObject jSONObject = new JSONObject(); + JSONArray classes = new JSONArray(); + OkHttpUtil.postJson(OkHttpUtil.defaultClient(), url, jSONObject.toString(), getHeaders(url), new OKCallBack.OKCallBackString() { + + @Override + public void onFailure(Call call, Exception exc) { + } + + public void onResponse(String str) { + try { + JSONArray list = new JSONObject(str).getJSONArray("data"); + for (int i = 0; i < list.length(); i++) { + JSONObject vObj = list.getJSONObject(i); + String name = vObj.getString("title"); + if (!name.equals("轮播")) { + String id = vObj.getString("title"); + JSONObject newCls = new JSONObject(); + newCls.put("type_id", id); + newCls.put("type_name", name); + classes.put(newCls); + } + } + } catch (JSONException unused) { + } + } + }); + JSONObject result = new JSONObject(); + result.put("class", classes); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + public String homeVideoContent() { + try { + JSONArray videos = new JSONArray(); + JSONObject jSONObject = new JSONObject(); + String url = "https://admin.syrme.top/v1/api/video/index"; + OkHttpUtil.postJson(OkHttpUtil.defaultClient(), url, jSONObject.toString(), getHeaders(url), new OKCallBack.OKCallBackString() { + @Override + public void onFailure(Call call, Exception exc) { + } + + public void onResponse(String str) { + try { + JSONArray jsonArray = new JSONObject(str).getJSONArray("data"); + JSONArray list = jsonArray.getJSONObject(1).getJSONArray("video_list"); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject vObj = list.getJSONObject(i); + String id = vObj.getString("ID"); + String title = vObj.getString("title"); + String cover = vObj.getString("image"); + String mark = vObj.getString("score"); + JSONObject v = new JSONObject(); + v.put("vod_id", id); + v.put("vod_name", title); + v.put("vod_pic", cover); + v.put("vod_remarks", mark); + videos.put(v); + } + } catch (JSONException unused) { + } + } + }); + JSONObject result = new JSONObject(); + result.put("list", videos); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + public String categoryContent(String tid, String pg, boolean filter, HashMap extend) { + try { + int parseInt = Integer.parseInt(pg); + if (parseInt == 0) { + parseInt = 1; + } + String url = "https://admin.syrme.top/v1/api/video/search?q=" + tid + "&page=" + pg + "&size=" + 24; + JSONObject jSONObject = new JSONObject(); + JSONArray list = new JSONArray(); + OkHttpUtil.postJson(OkHttpUtil.defaultClient(), url, jSONObject.toString(), getHeaders(url), new OKCallBack.OKCallBackString() { + + @Override + public void onFailure(Call call, Exception exc) { + } + + public void onResponse(String str4) { + try { + JSONArray data = new JSONObject(str4).getJSONArray("data"); + for (int i = 0; i < data.length(); i++) { + JSONObject vObj = data.getJSONObject(i); + JSONObject vodAtom = new JSONObject(); + vodAtom.put("vod_id", vObj.getString("ID")); + vodAtom.put("vod_name", vObj.getString("title")); + vodAtom.put("vod_pic", vObj.optString("image")); + String mark = vObj.optString("score"); + if (mark.equals("null")) { + mark = ""; + } + vodAtom.put("vod_remarks", mark); + list.put(vodAtom); + } + } catch (JSONException unused) { + } + } + }); + JSONObject result = new JSONObject(); + result.put("page", parseInt); + if (list.length() == 24) { + parseInt++; + } + result.put("pagecount", parseInt); + result.put("limit", 24); + result.put("total", Integer.MAX_VALUE); + result.put("list", list); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + public String detailContent(List ids) { + try { + String url = "https://admin.syrme.top/v1/api/video/id?id=" + ids.get(0); + JSONObject jSONObject = new JSONObject(); + JSONObject vodAtom = new JSONObject(); + OkHttpUtil.postJson(OkHttpUtil.defaultClient(), url, jSONObject.toString(), getHeaders(url), new OKCallBack.OKCallBackString() { + @Override + public void onFailure(Call call, Exception exc) { + } + + public void onResponse(String str) { + try { + JSONObject vObj = new JSONObject(str).getJSONObject("data"); + vodAtom.put("vod_id", vObj.getString("ID")); + vodAtom.put("vod_name", vObj.getString("title")); + vodAtom.put("vod_pic", vObj.getString("image")); + vodAtom.put("type_name", vObj.getString("video_type")); + vodAtom.put("vod_year", vObj.getString("year")); + vodAtom.put("vod_area", vObj.getString("video_tags")); + String optString = vObj.optString("score"); + String des = ""; + if (optString.equals("null")) { + optString = des; + } + vodAtom.put("vod_remarks", optString); + vodAtom.put("vod_actor", vObj.getString("authors")); + vodAtom.put("vod_director", vObj.getString("director")); + String optString2 = vObj.optString("content"); + if (!optString2.equals("null")) { + des = optString2; + } + vodAtom.put("vod_content", des); + vodAtom.put("vod_play_from", "简影"); + vodAtom.put("vod_play_url", vObj.optString("url_content").replace("\n", "#")); + } catch (JSONException unused) { + } + } + }); + JSONObject result = new JSONObject(); + JSONArray list = new JSONArray(); + list.put(vodAtom); + result.put("list", list); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + @TargetApi(26) + public String playerContent(String flag, String id, List vipFlags) { + try { + JSONObject result = new JSONObject(); + String time = LocalDateTime.now(ZoneId.of("Asia/Shanghai")).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")).replace("-", "丨"); + String key = "ba0-1024-11eb-ad"; + String enData = CBC.hexs(time, key, key); + String basic = ""; + int i = 0; + while (i < enData.length()) { + int i2 = i + 8; + basic = basic + enData.substring(i, i2) + "-"; + i = i2; + } + String sid = basic.substring(0, basic.length() - 1); + JSONObject headers = new JSONObject(); + headers.put("User-Agent", " Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"); + headers.put("Accept", " */*"); + headers.put("Accept-Language", " zh-CN,zh;q=0.9,en-US;q=0.3,en;q=0.7"); + headers.put("Accept-Encoding", " gzip, deflate"); + + result.put("parse", 0); + result.put("url", id + "?sid=" + sid); + result.put("playUrl", ""); + result.put("header", headers.toString()); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } + + public String searchContent(String str, boolean quick) { + if (quick) { + return ""; + } + try { + JSONArray videos = new JSONArray(); + try { + String url = "https://admin.syrme.top/v1/api/video/search?q=" + str + "&page=1&size=24"; + OkHttpUtil.postJson(OkHttpUtil.defaultClient(), url, new JSONObject().toString(), getHeaders(url), new OKCallBack.OKCallBackString() { + @Override + public void onFailure(Call call, Exception exc) { + } + + public void onResponse(String str3) { + try { + JSONArray jsonArray = new JSONObject(str3).getJSONArray("data"); + 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("title")); + v.put("vod_pic", vObj.optString("image")); + String mark = vObj.optString("score"); + if (mark.equals("null")) { + mark = ""; + } + v.put("vod_remarks", mark); + videos.put(v); + } + } catch (JSONException unused) { + } + } + }); + } catch (Exception unused) { + } + JSONObject result = new JSONObject(); + result.put("list", videos); + return result.toString(); + } catch (Exception e) { + SpiderDebug.log(e); + } + return ""; + } +} \ No newline at end of file