add - static
This commit is contained in:
@@ -1,377 +0,0 @@
|
|||||||
package com.github.catvod.spider;
|
|
||||||
|
|
||||||
import android.os.Build;
|
|
||||||
import android.text.TextUtils;
|
|
||||||
|
|
||||||
import com.github.catvod.crawler.Spider;
|
|
||||||
import com.github.catvod.crawler.SpiderDebug;
|
|
||||||
import com.github.catvod.utils.Misc;
|
|
||||||
import com.github.catvod.utils.okhttp.OkHttpUtil;
|
|
||||||
|
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Author: @SDL
|
|
||||||
*/
|
|
||||||
public class Kunyu77 extends Spider {
|
|
||||||
private static final String siteUrl = "http://api.kunyu77.com";
|
|
||||||
|
|
||||||
private String uAgent = "Dalvik/2.1.0 (Linux; U; Android " + Build.VERSION.RELEASE + "; " + Build.MODEL + " Build/" + Build.ID + ")";
|
|
||||||
|
|
||||||
private HashMap<String, String> getHeaders(String url) {
|
|
||||||
HashMap<String, String> headers = new HashMap<>();
|
|
||||||
headers.put("user-agent", uAgent);
|
|
||||||
String t = String.valueOf(System.currentTimeMillis()/ 1000) ;
|
|
||||||
|
|
||||||
String zuhe=url+t+"XSpeUFjJ";
|
|
||||||
String TK=Misc.MD5(zuhe, Misc.CharsetUTF8);
|
|
||||||
headers.put("TK",TK);
|
|
||||||
headers.put("t",t);
|
|
||||||
return headers;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String homeContent(boolean filter) {
|
|
||||||
try {
|
|
||||||
String url = siteUrl + "/api.php/provide/filter";
|
|
||||||
String content = OkHttpUtil.string(url, getHeaders(url));
|
|
||||||
JSONObject jsonObject = new JSONObject(decryptResponse(content)).getJSONObject("data");
|
|
||||||
Iterator<String> keys = jsonObject.keys();
|
|
||||||
JSONArray classes = new JSONArray();
|
|
||||||
JSONObject filterConfig = new JSONObject();
|
|
||||||
JSONArray extendsAll = null;
|
|
||||||
while (keys.hasNext()) {
|
|
||||||
String typeId = keys.next();
|
|
||||||
String typeName = jsonObject.getJSONArray(typeId).getJSONObject(0).getString("cat");
|
|
||||||
JSONObject newCls = new JSONObject();
|
|
||||||
newCls.put("type_id", typeId);
|
|
||||||
newCls.put("type_name", typeName);
|
|
||||||
classes.put(newCls);
|
|
||||||
try {
|
|
||||||
if (extendsAll == null) {
|
|
||||||
String filterUrl = siteUrl + "/api.php/provide/searchFilter?type_id=0&pagenum=1&pagesize=1";
|
|
||||||
String filterContent = OkHttpUtil.string(filterUrl, getHeaders(filterUrl));
|
|
||||||
JSONObject filterObj = new JSONObject(filterContent).getJSONObject("data").getJSONObject("conditions");
|
|
||||||
extendsAll = new JSONArray();
|
|
||||||
// 年份
|
|
||||||
JSONObject newTypeExtend = new JSONObject();
|
|
||||||
newTypeExtend.put("key", "year");
|
|
||||||
newTypeExtend.put("name", "年份");
|
|
||||||
JSONArray newTypeExtendKV = new JSONArray();
|
|
||||||
JSONObject kv = new JSONObject();
|
|
||||||
kv.put("n", "全部");
|
|
||||||
kv.put("v", "");
|
|
||||||
newTypeExtendKV.put(kv);
|
|
||||||
kv = new JSONObject();
|
|
||||||
kv.put("n", "2022");
|
|
||||||
kv.put("v", "2022");
|
|
||||||
newTypeExtendKV.put(kv);
|
|
||||||
kv = new JSONObject();
|
|
||||||
kv.put("n", "2021");
|
|
||||||
kv.put("v", "2021");
|
|
||||||
newTypeExtendKV.put(kv);
|
|
||||||
JSONArray years = filterObj.getJSONArray("y");
|
|
||||||
for (int j = 0; j < years.length(); j++) {
|
|
||||||
JSONObject child = years.getJSONObject(j);
|
|
||||||
kv = new JSONObject();
|
|
||||||
kv.put("n", child.getString("name"));
|
|
||||||
kv.put("v", child.getString("value"));
|
|
||||||
newTypeExtendKV.put(kv);
|
|
||||||
}
|
|
||||||
newTypeExtend.put("value", newTypeExtendKV);
|
|
||||||
extendsAll.put(newTypeExtend);
|
|
||||||
// 地区
|
|
||||||
newTypeExtend = new JSONObject();
|
|
||||||
newTypeExtend.put("key", "area");
|
|
||||||
newTypeExtend.put("name", "地区");
|
|
||||||
newTypeExtendKV = new JSONArray();
|
|
||||||
kv = new JSONObject();
|
|
||||||
kv.put("n", "全部");
|
|
||||||
kv.put("v", "");
|
|
||||||
newTypeExtendKV.put(kv);
|
|
||||||
JSONArray areas = filterObj.getJSONArray("a");
|
|
||||||
for (int j = 0; j < areas.length(); j++) {
|
|
||||||
JSONObject child = areas.getJSONObject(j);
|
|
||||||
kv = new JSONObject();
|
|
||||||
kv.put("n", child.getString("name"));
|
|
||||||
kv.put("v", child.getString("value"));
|
|
||||||
newTypeExtendKV.put(kv);
|
|
||||||
}
|
|
||||||
newTypeExtend.put("value", newTypeExtendKV);
|
|
||||||
extendsAll.put(newTypeExtend);
|
|
||||||
// 类型
|
|
||||||
newTypeExtend = new JSONObject();
|
|
||||||
newTypeExtend.put("key", "category");
|
|
||||||
newTypeExtend.put("name", "类型");
|
|
||||||
newTypeExtendKV = new JSONArray();
|
|
||||||
kv = new JSONObject();
|
|
||||||
kv.put("n", "全部");
|
|
||||||
kv.put("v", "");
|
|
||||||
newTypeExtendKV.put(kv);
|
|
||||||
JSONArray scat = filterObj.getJSONArray("scat");
|
|
||||||
for (int j = 0; j < scat.length(); j++) {
|
|
||||||
JSONObject child = scat.getJSONObject(j);
|
|
||||||
kv = new JSONObject();
|
|
||||||
kv.put("n", child.getString("name"));
|
|
||||||
kv.put("v", child.getString("value"));
|
|
||||||
newTypeExtendKV.put(kv);
|
|
||||||
}
|
|
||||||
newTypeExtend.put("value", newTypeExtendKV);
|
|
||||||
extendsAll.put(newTypeExtend);
|
|
||||||
}
|
|
||||||
if (extendsAll != null && extendsAll.length() > 0) {
|
|
||||||
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 (Throwable th) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String homeVideoContent() {
|
|
||||||
try {
|
|
||||||
JSONArray videos = new JSONArray();
|
|
||||||
try {
|
|
||||||
String url = siteUrl + "/api.php/provide/homeBlock?type_id=0";
|
|
||||||
String content = OkHttpUtil.string(url, getHeaders(url));
|
|
||||||
JSONObject jsonObject = new JSONObject(decryptResponse(content));
|
|
||||||
JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("blocks");
|
|
||||||
for (int i = 0; i < jsonArray.length(); i++) {
|
|
||||||
JSONObject blockObj = jsonArray.getJSONObject(i);
|
|
||||||
String blockName = blockObj.getString("block_name");
|
|
||||||
if (!blockName.startsWith("热播")) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
JSONArray contents = blockObj.getJSONArray("contents");
|
|
||||||
for (int j = 0; j < contents.length() && j < 3; j++) {
|
|
||||||
JSONObject vObj = contents.getJSONObject(j);
|
|
||||||
JSONObject v = new JSONObject();
|
|
||||||
v.put("vod_id", vObj.getString("id"));
|
|
||||||
v.put("vod_name", vObj.getString("title"));
|
|
||||||
v.put("vod_pic", vObj.getString("videoCover"));
|
|
||||||
v.put("vod_remarks", vObj.getString("msg"));
|
|
||||||
videos.put(v);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
result.put("list", videos);
|
|
||||||
return result.toString();
|
|
||||||
} catch (Throwable th) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) {
|
|
||||||
try {
|
|
||||||
String url = siteUrl + "/api.php/provide/searchFilter?type_id=" + tid + "&pagenum=" + pg + "&pagesize=24";
|
|
||||||
Set<String> keys = extend.keySet();
|
|
||||||
for (String key : keys) {
|
|
||||||
String val = extend.get(key).trim();
|
|
||||||
if (val.length() == 0)
|
|
||||||
continue;
|
|
||||||
url += "&" + key + "=" + URLEncoder.encode(val);
|
|
||||||
}
|
|
||||||
String content = OkHttpUtil.string(url, getHeaders(url));
|
|
||||||
JSONObject dataObject = new JSONObject(decryptResponse(content)).getJSONObject("data");
|
|
||||||
JSONArray jsonArray = dataObject.getJSONArray("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("title"));
|
|
||||||
v.put("vod_pic", vObj.getString("videoCover"));
|
|
||||||
v.put("vod_remarks", vObj.getString("msg"));
|
|
||||||
videos.put(v);
|
|
||||||
}
|
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
int limit = 24;
|
|
||||||
int page = Integer.parseInt(dataObject.getString("page"));
|
|
||||||
int total = dataObject.getInt("total");
|
|
||||||
int pageCount = dataObject.getInt("pagesize");
|
|
||||||
result.put("page", page);
|
|
||||||
result.put("pagecount", pageCount);
|
|
||||||
result.put("limit", limit);
|
|
||||||
result.put("total", total);
|
|
||||||
result.put("list", videos);
|
|
||||||
return result.toString();
|
|
||||||
} catch (Throwable th) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String detailContent(List<String> ids) {
|
|
||||||
try {
|
|
||||||
String url = siteUrl + "/api.php/provide/videoDetail?ids=" + ids.get(0) + "&version=2.0.4&sj=1661957675";
|
|
||||||
String urlx="/api.php/provide/videoDetail" + ids.get(0);
|
|
||||||
String content = OkHttpUtil.string(url, getHeaders(urlx));
|
|
||||||
JSONObject dataObject = new JSONObject(decryptResponse(content));
|
|
||||||
JSONObject vObj = dataObject.getJSONObject("data");
|
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
JSONArray list = new JSONArray();
|
|
||||||
JSONObject vodAtom = new JSONObject();
|
|
||||||
String title = vObj.getString("videoName");
|
|
||||||
vodAtom.put("vod_id", vObj.getString("id"));
|
|
||||||
vodAtom.put("vod_name", title);
|
|
||||||
vodAtom.put("vod_pic", vObj.getString("videoCover"));
|
|
||||||
vodAtom.put("type_name", vObj.getString("subCategory"));
|
|
||||||
vodAtom.put("vod_year", vObj.getString("year"));
|
|
||||||
vodAtom.put("vod_area", vObj.getString("area"));
|
|
||||||
vodAtom.put("vod_remarks", vObj.getString("msg"));
|
|
||||||
vodAtom.put("vod_actor", vObj.getString("actor"));
|
|
||||||
vodAtom.put("vod_director", vObj.getString("director"));
|
|
||||||
vodAtom.put("vod_content", vObj.getString("brief").trim());
|
|
||||||
|
|
||||||
url = siteUrl + "/api.php/provide/videoPlaylist?ids=" + ids.get(0) + "&version=2.0.4&sj=1661957675";
|
|
||||||
content = OkHttpUtil.string(url, getHeaders(url));
|
|
||||||
JSONArray episodes = new JSONObject(content).getJSONObject("data").getJSONArray("episodes");
|
|
||||||
LinkedHashMap<String, ArrayList<String>> playlist = new LinkedHashMap<>();
|
|
||||||
for (int i = 0; i < episodes.length(); i++) {
|
|
||||||
JSONArray playurls = episodes.getJSONObject(i).getJSONArray("playurls");
|
|
||||||
for (int j = 0; j < playurls.length(); j++) {
|
|
||||||
JSONObject purl = playurls.getJSONObject(j);
|
|
||||||
String from = purl.getString("playfrom");
|
|
||||||
ArrayList<String> urls = playlist.get(from);
|
|
||||||
if (urls == null) {
|
|
||||||
urls = new ArrayList<>();
|
|
||||||
playlist.put(from, urls);
|
|
||||||
}
|
|
||||||
String name = purl.getString("title").replace(title, "").trim();
|
|
||||||
if (name.isEmpty()) {
|
|
||||||
name = (i + 1) + "";
|
|
||||||
}
|
|
||||||
String pid = purl.getString("playurl");
|
|
||||||
urls.add(name + "$" + pid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String vod_play_from = TextUtils.join("$$$", playlist.keySet());
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
Iterator<ArrayList<String>> iter = playlist.values().iterator();
|
|
||||||
short fromSize = (short) playlist.size();
|
|
||||||
while (iter.hasNext()) {
|
|
||||||
fromSize--;
|
|
||||||
ArrayList<String> urls = iter.next();
|
|
||||||
sb.append(TextUtils.join("#", urls));
|
|
||||||
if (fromSize > 0)
|
|
||||||
sb.append("$$$");
|
|
||||||
}
|
|
||||||
vodAtom.put("vod_play_from", vod_play_from);
|
|
||||||
vodAtom.put("vod_play_url", sb.toString());
|
|
||||||
list.put(vodAtom);
|
|
||||||
result.put("list", list);
|
|
||||||
return result.toString();
|
|
||||||
} catch (Throwable th) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String playerContent(String flag, String id, List<String> vipFlags) {
|
|
||||||
try {
|
|
||||||
String videoUrl = id;
|
|
||||||
try {
|
|
||||||
String url = siteUrl + "/api.php/provide/parserUrl?url=" + id;
|
|
||||||
String content = OkHttpUtil.string(url, getHeaders(url));
|
|
||||||
JSONObject dataObj = new JSONObject(decryptResponse(content)).getJSONObject("data");
|
|
||||||
JSONObject playHeader = dataObj.optJSONObject("playHeader");
|
|
||||||
String jxUrl = dataObj.getString("url");
|
|
||||||
content = OkHttpUtil.string(jxUrl, getHeaders(jxUrl));
|
|
||||||
JSONObject result = Misc.jsonParse(jxUrl, content);
|
|
||||||
if (result != null) {
|
|
||||||
result.put("parse", 0);
|
|
||||||
result.put("playUrl", "");
|
|
||||||
if (playHeader != null) {
|
|
||||||
JSONObject header = result.getJSONObject("header");
|
|
||||||
Iterator<String> iter = playHeader.keys();
|
|
||||||
while (iter.hasNext()) {
|
|
||||||
String key = iter.next();
|
|
||||||
header.put(key, " " + playHeader.getString(key));
|
|
||||||
}
|
|
||||||
result.put("header", header.toString());
|
|
||||||
}
|
|
||||||
return result.toString();
|
|
||||||
}
|
|
||||||
} catch (Throwable th) {
|
|
||||||
|
|
||||||
}
|
|
||||||
if (Misc.isVip(videoUrl)) {
|
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
result.put("parse", 1);
|
|
||||||
result.put("jx", "1");
|
|
||||||
result.put("url", videoUrl);
|
|
||||||
return result.toString();
|
|
||||||
}
|
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
result.put("parse", 0);
|
|
||||||
result.put("playUrl", "");
|
|
||||||
result.put("url", id);
|
|
||||||
return result.toString();
|
|
||||||
} catch (Throwable th) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String searchContent(String key, boolean quick) {
|
|
||||||
try {
|
|
||||||
String url = siteUrl + "/api.php/provide/searchVideo?searchName=" + URLEncoder.encode(key);
|
|
||||||
String content = OkHttpUtil.string(url, getHeaders(url));
|
|
||||||
JSONObject dataObject = new JSONObject(decryptResponse(content));
|
|
||||||
JSONArray jsonArray = dataObject.getJSONArray("data");
|
|
||||||
JSONArray videos = new JSONArray();
|
|
||||||
for (int i = 0; i < jsonArray.length(); i++) {
|
|
||||||
JSONObject vObj = jsonArray.getJSONObject(i);
|
|
||||||
JSONObject v = new JSONObject();
|
|
||||||
String title = vObj.getString("videoName");
|
|
||||||
if (!title.contains(key))
|
|
||||||
continue;
|
|
||||||
v.put("vod_id", vObj.getString("id"));
|
|
||||||
v.put("vod_name", title);
|
|
||||||
v.put("vod_pic", vObj.getString("videoCover"));
|
|
||||||
v.put("vod_remarks", vObj.getString("msg"));
|
|
||||||
videos.put(v);
|
|
||||||
}
|
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
result.put("list", videos);
|
|
||||||
return result.toString();
|
|
||||||
} catch (Throwable th) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String decryptResponse(String src) {
|
|
||||||
return src;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -49,13 +49,13 @@ public class PushAgent extends Spider {
|
|||||||
fetchRule(false,0);
|
fetchRule(false,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getToken(String token){
|
public static void getToken(String token){
|
||||||
if (token.startsWith("http")) {
|
if (token.startsWith("http")) {
|
||||||
Token = OkHttpUtil.string(token, null);
|
Token = OkHttpUtil.string(token, null);
|
||||||
}else Token = token;
|
}else Token = token;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JSONObject fetchRule(boolean flag,int t) {
|
public static JSONObject fetchRule(boolean flag,int t) {
|
||||||
try {
|
try {
|
||||||
if (flag || siteRule == null) {
|
if (flag || siteRule == null) {
|
||||||
String json = OkHttpUtil.string(jsonUrl+"?t="+Time(), null);
|
String json = OkHttpUtil.string(jsonUrl+"?t="+Time(), null);
|
||||||
@@ -80,7 +80,7 @@ public class PushAgent extends Spider {
|
|||||||
return siteRule;
|
return siteRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRuleVal(JSONObject o,String key, String defaultVal) {
|
public static String getRuleVal(JSONObject o,String key, String defaultVal) {
|
||||||
String v = o.optString(key);
|
String v = o.optString(key);
|
||||||
if (v.isEmpty() || v.equals("空"))
|
if (v.isEmpty() || v.equals("空"))
|
||||||
return defaultVal;
|
return defaultVal;
|
||||||
@@ -322,7 +322,7 @@ public class PushAgent extends Spider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void listFiles(Map<String, String> map, String str, String str2, String str3) {
|
public static void listFiles(Map<String, String> map, String str, String str2, String str3) {
|
||||||
String str4;
|
String str4;
|
||||||
try {
|
try {
|
||||||
String str5 = "https://api.aliyundrive.com/adrive/v3/file/list";
|
String str5 = "https://api.aliyundrive.com/adrive/v3/file/list";
|
||||||
@@ -379,7 +379,7 @@ public class PushAgent extends Spider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAliContent(List<String> list,JSONObject jSONObject6) {
|
public static String getAliContent(List<String> list,JSONObject jSONObject6) {
|
||||||
String str;
|
String str;
|
||||||
try {
|
try {
|
||||||
String url = list.get(0).trim();
|
String url = list.get(0).trim();
|
||||||
@@ -482,6 +482,10 @@ public class PushAgent extends Spider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String detailContent(List<String> list) {
|
public String detailContent(List<String> list) {
|
||||||
|
return getDetail(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getDetail(List<String> list) {
|
||||||
try {
|
try {
|
||||||
String url = list.get(0).trim();
|
String url = list.get(0).trim();
|
||||||
String[] idInfo = url.split("\\$\\$\\$");
|
String[] idInfo = url.split("\\$\\$\\$");
|
||||||
|
|||||||
@@ -22,15 +22,16 @@ public class PushAgentQQ extends Spider {
|
|||||||
public void init(Context context, String extend) {
|
public void init(Context context, String extend) {
|
||||||
super.init(context, extend);
|
super.init(context, extend);
|
||||||
pushAgent = new PushAgent();
|
pushAgent = new PushAgent();
|
||||||
pushAgent.init(context, extend);
|
|
||||||
if (extend != null) {
|
if (extend != null) {
|
||||||
if (!extend.startsWith("http")) {
|
if (!extend.startsWith("http")) {
|
||||||
String[] arr = extend.split(";");
|
String[] arr = extend.split(";");
|
||||||
this.ext = arr[1];
|
this.ext = arr[1];
|
||||||
|
pushAgent.jsonUrl = arr[1];
|
||||||
}else {
|
}else {
|
||||||
this.ext = extend;
|
this.ext = extend;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pushAgent.init(context, extend);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import okhttp3.Call;
|
|||||||
import org.jsoup.Jsoup;
|
import org.jsoup.Jsoup;
|
||||||
|
|
||||||
public class XBiubiu extends Spider {
|
public class XBiubiu extends Spider {
|
||||||
private PushAgent pushAgent= null;
|
private static PushAgent pushAgent= null;
|
||||||
@Override
|
@Override
|
||||||
public void init(Context context) {
|
public void init(Context context) {
|
||||||
super.init(context);
|
super.init(context);
|
||||||
|
|||||||
Reference in New Issue
Block a user