diff --git a/app/src/main/java/com/github/catvod/bean/Result.java b/app/src/main/java/com/github/catvod/bean/Result.java index ba74703..7f9eacb 100644 --- a/app/src/main/java/com/github/catvod/bean/Result.java +++ b/app/src/main/java/com/github/catvod/bean/Result.java @@ -96,6 +96,7 @@ public class Result { } public Result header(HashMap header) { + if (header.isEmpty()) return this; this.header = new Gson().toJson(header); return this; } diff --git a/app/src/main/java/com/github/catvod/spider/XPath.java b/app/src/main/java/com/github/catvod/spider/XPath.java index e00d652..895f4f8 100644 --- a/app/src/main/java/com/github/catvod/spider/XPath.java +++ b/app/src/main/java/com/github/catvod/spider/XPath.java @@ -259,7 +259,10 @@ public class XPath extends Spider { public String playerContent(String flag, String id, List vipFlags) { String webUrl = rule.getPlayUrl().isEmpty() ? id : rule.getPlayUrl().replace("{playUrl}", id); SpiderDebug.log(webUrl); - return Result.get().parse().url(webUrl).toString(); + HashMap headers = new HashMap<>(); + if (rule.getPlayUa().length() > 0) headers.put("User-Agent", rule.getPlayUa()); + if (rule.getPlayReferer().length() > 0) headers.put("Referer", rule.getPlayReferer()); + return Result.get().parse().url(webUrl).header(headers).string(); } @Override diff --git a/app/src/main/java/com/github/catvod/xpath/XPathRule.java b/app/src/main/java/com/github/catvod/xpath/XPathRule.java index 44d7d1f..17a73af 100644 --- a/app/src/main/java/com/github/catvod/xpath/XPathRule.java +++ b/app/src/main/java/com/github/catvod/xpath/XPathRule.java @@ -250,6 +250,10 @@ public class XPathRule { * 播放解析調用ua */ private String playUa; + /** + * 播放解析調用referer + */ + private String playReferer; /** * 搜尋頁地址 @@ -391,6 +395,7 @@ public class XPathRule { rule.dtUrlNameR = getPattern(jsonObj, "dtUrlNameR"); rule.playUrl = jsonObj.optString("playUrl"); rule.playUa = jsonObj.optString("playUa"); + rule.playReferer = jsonObj.optString("playReferer"); rule.searchUrl = jsonObj.optString("searchUrl"); rule.scVodNode = jsonObj.optString("scVodNode").trim(); rule.scVodName = jsonObj.optString("scVodName").trim(); @@ -644,6 +649,10 @@ public class XPathRule { return playUa; } + public String getPlayReferer() { + return playReferer; + } + public String getSearchUrl() { return searchUrl; } diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index 9aaa9a4..60adc19 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 4ae2a03..e98feb5 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -f3c52e97a91a4d972225a8e2f8c2d81e +386bb130dd0ff7c26addc113ce7e5434