From 13856f272e9512f41442b05f9690e3b889835b74 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 29 Feb 2024 14:19:48 +0800 Subject: [PATCH] webdav support range --- app/src/main/java/com/github/catvod/api/AliYun.java | 8 ++------ app/src/main/java/com/github/catvod/spider/WebDAV.java | 10 +++++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/github/catvod/api/AliYun.java b/app/src/main/java/com/github/catvod/api/AliYun.java index e0497f55..829c13a0 100644 --- a/app/src/main/java/com/github/catvod/api/AliYun.java +++ b/app/src/main/java/com/github/catvod/api/AliYun.java @@ -506,12 +506,8 @@ public class AliYun { } Map headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - for (String key : params.keySet()) { - if (key.equals("referer") || key.equals("icy-metadata") || key.equals("range") || key.equals("connection") || key.equals("accept-encoding") || key.equals("user-agent")) { - headers.put(key, params.get(key)); - } - } - + List keys = Arrays.asList("referer", "icy-metadata", "range", "connection", "accept-encoding", "user-agent"); + for (String key : params.keySet()) if (keys.contains(key)) headers.put(key, params.get(key)); return new Object[]{ProxyVideo.proxy(downloadUrl, headers)}; } diff --git a/app/src/main/java/com/github/catvod/spider/WebDAV.java b/app/src/main/java/com/github/catvod/spider/WebDAV.java index 5eacb187..e5767290 100644 --- a/app/src/main/java/com/github/catvod/spider/WebDAV.java +++ b/app/src/main/java/com/github/catvod/spider/WebDAV.java @@ -24,6 +24,7 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.TreeMap; public class WebDAV extends Spider { @@ -185,7 +186,14 @@ public class WebDAV extends Spider { Object[] result = new Object[3]; result[0] = 200; result[1] = "application/octet-stream"; - result[2] = drive.getWebdav().get(drive.getHost() + url); + result[2] = drive.getWebdav().get(drive.getHost() + url, getHeaders(params)); return result; } + + private static Map getHeaders(Map params) { + Map headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + List keys = Arrays.asList("referer", "icy-metadata", "range", "connection", "accept-encoding", "user-agent"); + for (String key : params.keySet()) if (keys.contains(key)) headers.put(key, params.get(key)); + return headers; + } }