You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.4 KiB
59 lines
2.4 KiB
package com.github.catvod.spider;
|
|
|
|
import android.util.Base64;
|
|
|
|
import com.github.catvod.bean.Result;
|
|
import com.github.catvod.bean.Vod;
|
|
import com.github.catvod.net.OkHttp;
|
|
|
|
import org.json.JSONArray;
|
|
import org.json.JSONObject;
|
|
|
|
import java.net.URLEncoder;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
|
|
import javax.crypto.Cipher;
|
|
import javax.crypto.spec.IvParameterSpec;
|
|
import javax.crypto.spec.SecretKeySpec;
|
|
|
|
public class YiSo extends Ali {
|
|
|
|
private HashMap<String, String> getHeaders() {
|
|
HashMap<String, String> headers = new HashMap<>();
|
|
headers.put("User-Agent", "Mozilla/5.0 (Linux; Android 12; V2049A Build/SP1A.210812.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/103.0.5060.129 Mobile Safari/537.36");
|
|
headers.put("Referer", "https://yiso.fun/");
|
|
headers.put("Cookie", "satoken=2854cb58-3884-473b-84c4-34161f67a409");
|
|
return headers;
|
|
}
|
|
|
|
@Override
|
|
public String searchContent(String key, boolean quick) throws Exception {
|
|
String json = OkHttp.string("https://yiso.fun/api/search?name=" + URLEncoder.encode(key) + "&pageNo=1&from=ali", getHeaders());
|
|
JSONArray array = new JSONObject(json).getJSONObject("data").getJSONArray("list");
|
|
ArrayList<Vod> list = new ArrayList<>();
|
|
for (int i = 0; i < array.length(); i++) {
|
|
Vod vod = new Vod();
|
|
String name = array.getJSONObject(i).getJSONArray("fileInfos").getJSONObject(0).getString("fileName");
|
|
String remark = array.getJSONObject(i).getString("gmtCreate");
|
|
vod.setVodId(decrypt(array.getJSONObject(i).getString("url")));
|
|
vod.setVodName(name);
|
|
vod.setVodRemarks(remark);
|
|
vod.setVodPic("https://inews.gtimg.com/newsapp_bt/0/13263837859/1000");
|
|
list.add(vod);
|
|
}
|
|
return Result.string(list);
|
|
}
|
|
|
|
public String decrypt(String str) {
|
|
try {
|
|
SecretKeySpec key = new SecretKeySpec("4OToScUFOaeVTrHE".getBytes("UTF-8"), "AES");
|
|
IvParameterSpec iv = new IvParameterSpec("9CLGao1vHKqm17Oz".getBytes("UTF-8"));
|
|
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
|
cipher.init(Cipher.DECRYPT_MODE, key, iv);
|
|
return new String(cipher.doFinal(Base64.decode(str.getBytes(), 0)), "UTF-8");
|
|
} catch (Exception e) {
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
|