diff --git a/app/src/main/java/com/github/catvod/bean/upyun/Item.java b/app/src/main/java/com/github/catvod/bean/upyun/Item.java index b558825e..aa6aade8 100644 --- a/app/src/main/java/com/github/catvod/bean/upyun/Item.java +++ b/app/src/main/java/com/github/catvod/bean/upyun/Item.java @@ -26,8 +26,9 @@ public class Item { return TextUtils.isEmpty(insertTime) ? "" : insertTime; } - public boolean isAli() { - return getPageUrl().contains("www.aliyundrive.com"); + public Item url(String pageUrl) { + this.pageUrl = pageUrl; + return this; } public Vod getVod() { diff --git a/app/src/main/java/com/github/catvod/spider/UpYun.java b/app/src/main/java/com/github/catvod/spider/UpYun.java index ab66d115..7623250f 100644 --- a/app/src/main/java/com/github/catvod/spider/UpYun.java +++ b/app/src/main/java/com/github/catvod/spider/UpYun.java @@ -1,38 +1,41 @@ 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.bean.upyun.Data; import com.github.catvod.bean.upyun.Item; import com.github.catvod.net.OkHttp; -import com.github.catvod.utils.Utils; +import com.google.common.io.BaseEncoding; import java.net.URLEncoder; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; + +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; public class UpYun extends Ali { - private final String siteUrl = "https://www.upyunso.com/"; - private final String apiUrl = "https://api.upyunso2.com/"; - - private Map getHeaders() { - HashMap headers = new HashMap<>(); - headers.put("User-Agent", Utils.CHROME); - headers.put("Referer", siteUrl); - return headers; - } - @Override - public String searchContent(String key, boolean quick) { - String url = apiUrl + "search?keyword=" + URLEncoder.encode(key) + "&page=1&s_type=2"; - String res = new String(Base64.decode(OkHttp.string(url, getHeaders()), Base64.DEFAULT)); + public String searchContent(String key, boolean quick) throws Exception { + String res = decode(OkHttp.string("https://zyb.upyunso.com/v15/search?keyword=" + URLEncoder.encode(key) + "&page=1&s_type=2")); List list = new ArrayList<>(); - for (Item item : Data.objectFrom(res).getResult().getItems()) if (item.isAli() && item.getTitle().contains(key)) list.add(item.getVod()); + for (Item item : Data.objectFrom(res).getResult().getItems()) { + String url = decode(item.getPageUrl()); + if (!url.contains("www.aliyundrive.com")) continue; + if (item.getTitle().contains(key)) list.add(item.url(url).getVod()); + } return Result.string(list); } + + private String decode(String data) throws Exception { + SecretKeySpec keySpec = new SecretKeySpec("qq1920520460qqzz".getBytes(), "AES"); + IvParameterSpec ivSpec = new IvParameterSpec("qq1920520460qqzz".getBytes()); + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec); + byte[] encryptDataBytes = BaseEncoding.base16().decode(data.toUpperCase()); + byte[] decryptData = cipher.doFinal(encryptDataBytes); + return new String(decryptData, "UTF-8"); + } } \ No newline at end of file diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 8e09e555..b8c7e9e0 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 82b5e6d5..ff15637a 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -e50bee173463b34db1d1faf3bbdffcaa +dfb5901a5b7325e193395db4ae6541b4