diff --git a/app/src/main/java/com/github/catvod/bean/yiso/Item.java b/app/src/main/java/com/github/catvod/bean/yiso/Item.java deleted file mode 100644 index a31f2ec0..00000000 --- a/app/src/main/java/com/github/catvod/bean/yiso/Item.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.github.catvod.bean.yiso; - -import com.github.catvod.bean.Vod; -import com.google.gson.Gson; -import com.google.gson.annotations.SerializedName; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class Item { - - @SerializedName("data") - private DataDTO data; - - public static Item objectFrom(String str) { - try { - return new Gson().fromJson(str, Item.class); - } catch (Exception e) { - e.printStackTrace(); - return new Item(); - } - } - - public DataDTO getData() { - return data == null ? new DataDTO() : data; - } - - public static class DataDTO { - - @SerializedName("list") - private List list; - - public List getList(String key) { - List items = new ArrayList<>(); - list = list == null ? Collections.emptyList() : list; - for (ListDTO item : list) if (item.getName().contains(key)) items.add(item.getVod()); - return items; - } - - public static class ListDTO { - - @SerializedName("url") - private String url; - @SerializedName("gmtCreate") - private String gmtCreate; - @SerializedName("fileInfos") - private List fileInfos; - - public String getUrl() { - return url; - } - - public String getGmtCreate() { - return gmtCreate; - } - - public List getFileInfos() { - return fileInfos; - } - - public String getName() { - return getFileInfos().get(0).getFileName(); - } - - public Vod getVod() { - String id = getUrl(); - String name = getName(); - String remark = getGmtCreate(); - String pic = "https://inews.gtimg.com/newsapp_bt/0/13263837859/1000"; - return new Vod(id, name, pic, remark); - } - - public static class FileInfoDTO { - - @SerializedName("fileName") - private String fileName; - - public String getFileName() { - return fileName; - } - } - } - } -} diff --git a/app/src/main/java/com/github/catvod/spider/YiSo.java b/app/src/main/java/com/github/catvod/spider/YiSo.java new file mode 100644 index 00000000..7dafea30 --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/YiSo.java @@ -0,0 +1,59 @@ +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 getHeaders() { + HashMap 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 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 ""; + } + } +} diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 1584f530..9b4207a8 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index 388a67e5..a8d54c92 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -a0fb5dc6e2d2199a6663c3d5cee4bedb +0cd8dd32e89511058fd8e6bceb586a28 diff --git a/json/adult.json b/json/adult.json index 8ac40eaf..858c97b6 100644 --- a/json/adult.json +++ b/json/adult.json @@ -1,5 +1,5 @@ { - "spider": "https://fongmi.cachefly.net/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;a0fb5dc6e2d2199a6663c3d5cee4bedb", + "spider": "https://fongmi.cachefly.net/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;0cd8dd32e89511058fd8e6bceb586a28", "wallpaper": "https://gao.chuqiuyu.tk", "sites": [ { diff --git a/json/config.json b/json/config.json index f283b9d7..efb6e234 100644 --- a/json/config.json +++ b/json/config.json @@ -1,5 +1,5 @@ { - "spider": "https://fongmi.cachefly.net/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;a0fb5dc6e2d2199a6663c3d5cee4bedb", + "spider": "https://fongmi.cachefly.net/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;0cd8dd32e89511058fd8e6bceb586a28", "wallpaper": "http://饭太硬.top/深色壁纸/api.php", "sites": [ { @@ -166,6 +166,14 @@ "searchable": 1, "changeable": 0 }, + { + "key": "易搜", + "name": "易搜", + "type": 3, + "api": "csp_YiSo", + "searchable": 1, + "changeable": 0 + }, { "key": "雲搜", "name": "雲搜",