diff --git a/app/src/main/java/com/github/catvod/net/OkHttp.java b/app/src/main/java/com/github/catvod/net/OkHttp.java index 970a4273..44fac466 100644 --- a/app/src/main/java/com/github/catvod/net/OkHttp.java +++ b/app/src/main/java/com/github/catvod/net/OkHttp.java @@ -55,6 +55,10 @@ public class OkHttp { } } + public static Response newCall(String url) throws IOException { + return client().newCall(new Request.Builder().url(url).build()).execute(); + } + public static Response newCall(String url, Map header) throws IOException { return client().newCall(new Request.Builder().url(url).headers(Headers.of(header)).build()).execute(); } diff --git a/app/src/main/java/com/github/catvod/spider/Push.java b/app/src/main/java/com/github/catvod/spider/Push.java index 29092744..afb33db4 100644 --- a/app/src/main/java/com/github/catvod/spider/Push.java +++ b/app/src/main/java/com/github/catvod/spider/Push.java @@ -1,17 +1,18 @@ package com.github.catvod.spider; import android.content.Context; +import android.net.Uri; import android.text.TextUtils; import com.github.catvod.bean.Result; import com.github.catvod.bean.Sub; import com.github.catvod.bean.Vod; +import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Utils; import java.io.File; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -50,14 +51,36 @@ public class Push extends Ali { } private List getSubs(String url) { - if (!url.startsWith("file://")) return Collections.emptyList(); - File file = new File(url.replace("file://", "")); - if (file.getParentFile() == null) return Collections.emptyList(); List subs = new ArrayList<>(); + if (url.startsWith("file://")) setFileSub(url, subs); + if (url.startsWith("http://")) setHttpSub(url, subs); + return subs; + } + + private void setHttpSub(String url, List subs) { + try { + List vodTypes = Arrays.asList("mp4", "mkv"); + List subTypes = Arrays.asList("srt", "ass"); + if (!vodTypes.contains(Utils.getExt(url))) return; + for (String ext : subTypes) detectSub(url, ext, subs); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void detectSub(String url, String ext, List subs) throws Exception { + url = Utils.removeExt(url).concat(".").concat(ext); + if (OkHttp.newCall(url).code() != 200) return; + String name = Uri.parse(url).getLastPathSegment(); + subs.add(Sub.create().name(name).ext(ext).url(url)); + } + + private void setFileSub(String url, List subs) { + File file = new File(url.replace("file://", "")); + if (file.getParentFile() == null) return; for (File f : Objects.requireNonNull(file.getParentFile().listFiles())) { String ext = Utils.getExt(f.getName()); if (Utils.isSub(ext)) subs.add(Sub.create().name(Utils.removeExt(f.getName())).ext(ext).url("file://" + f.getAbsolutePath())); } - return subs; } } \ No newline at end of file diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 40c092ed..1d91816e 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 748ab50a..65e39351 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -dec1a7f7a1e979b8f5ff4887dd6da378 +d02ea3eb2cda4c0a98f3758125eb667e diff --git a/json/adult.json b/json/adult.json index f1b2cd4f..9513cf7e 100644 --- a/json/adult.json +++ b/json/adult.json @@ -1,5 +1,5 @@ { - "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;dec1a7f7a1e979b8f5ff4887dd6da378", + "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;d02ea3eb2cda4c0a98f3758125eb667e", "wallpaper": "https://gao.chuqiuyu.tk", "sites": [ { diff --git a/json/config.json b/json/config.json index 4c308a72..56d5d7e6 100644 --- a/json/config.json +++ b/json/config.json @@ -1,5 +1,5 @@ { - "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;dec1a7f7a1e979b8f5ff4887dd6da378", + "spider": "https://raw.githubusercontent.com/FongMi/CatVodSpider/main/jar/custom_spider.jar;md5;d02ea3eb2cda4c0a98f3758125eb667e", "wallpaper": "http://饭太硬.top/深色壁纸/api.php", "sites": [ {