AndroidCatVodSpider/app/src/main/java/com/github/catvod/spider/XiaoZhiTiao.java

80 lines
2.6 KiB
Java

package com.github.catvod.spider;
import android.content.Context;
import android.text.TextUtils;
import com.github.catvod.bean.Result;
import com.github.catvod.bean.Vod;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Util;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* XiaoZhiTiao
*
* @author Oiltea
*/
public class XiaoZhiTiao extends Ali {
private static final String siteUrl = "https://gitcafe.net/tool/alipaper/";
private static final String aliUrl = "https://www.aliyundrive.com/s/";
private String token;
private Date date;
private Map<String, String> getHeaders() {
Map<String, String> params = new HashMap<>();
params.put("Host", "gitcafe.net");
params.put("User-Agent", Util.CHROME);
return params;
}
@Override
public void init(Context context, String extend) {
super.init(context, extend);
date = new Date();
}
@Override
public String searchContent(String key, boolean quick) throws Exception {
Map<String, String> params = new HashMap<>();
params.put("action", "search");
params.put("from", "web");
params.put("keyword", key);
params.put("token", getToken());
JSONObject object = new JSONObject(OkHttp.post(siteUrl, params, getHeaders()).getBody());
if (!object.optBoolean("success")) return "";
List<Vod> list = new ArrayList<>();
JSONArray data = object.getJSONArray("data");
for (int i = 0, len = data.length(); i < len; i++) {
JSONObject o = data.getJSONObject(i);
String alikey = o.getString("alikey");
String title = o.getString("title");
String creatime = o.getString("creatime");
list.add(new Vod(aliUrl + alikey, title, "", TextUtils.isEmpty(creatime) ? "" : creatime.substring(0, 10)));
}
return Result.string(list);
}
private String getToken() throws JSONException {
if (TextUtils.isEmpty(token) || new Date().compareTo(date) > 0) {
Map<String, String> params = new HashMap<>();
params.put("action", "get_token");
params.put("from", "web");
JSONObject object = new JSONObject(OkHttp.post(siteUrl, params, getHeaders()).getBody());
if (object.getBoolean("success")) {
token = object.getString("data");
date = new Date(System.currentTimeMillis() + 24 * 60 * 60 * 1000);
}
}
return token;
}
}