Clean code

This commit is contained in:
FongMi 2024-02-02 17:26:18 +08:00
parent 2205d18819
commit 93ad5fe010
4 changed files with 10 additions and 23 deletions

View File

@ -456,7 +456,7 @@ public class AliYun {
} }
private String proxyVideoUrl(String cate, String shareId, String fileId) { private String proxyVideoUrl(String cate, String shareId, String fileId) {
return ProxyVideo.url(String.format(Proxy.getUrl() + "?do=ali&type=video&cate=%s&shareId=%s&fileId=%s", cate, shareId, fileId), 20); return String.format(Proxy.getUrl() + "?do=ali&type=video&cate=%s&shareId=%s&fileId=%s", cate, shareId, fileId);
} }
private String proxyVideoUrl(String cate, String shareId, String fileId, String templateId) { private String proxyVideoUrl(String cate, String shareId, String fileId, String templateId) {
@ -480,7 +480,6 @@ public class AliYun {
public Object[] proxyVideo(Map<String, String> params) throws Exception { public Object[] proxyVideo(Map<String, String> params) throws Exception {
if (dialog != null && dialog.isShowing()) return null; if (dialog != null && dialog.isShowing()) return null;
String templateId = params.get("templateId"); String templateId = params.get("templateId");
String response = params.get("response");
String shareId = params.get("shareId"); String shareId = params.get("shareId");
String mediaId = params.get("mediaId"); String mediaId = params.get("mediaId");
String fileId = params.get("fileId"); String fileId = params.get("fileId");
@ -488,7 +487,7 @@ public class AliYun {
String downloadUrl = ""; String downloadUrl = "";
if ("preview".equals(cate)) { if ("preview".equals(cate)) {
return previewProxy(shareId, fileId, templateId); return new Object[]{200, "application/vnd.apple.mpegurl", new ByteArrayInputStream(getM3u8(shareId, fileId, templateId).getBytes())};
} }
if ("open".equals(cate)) { if ("open".equals(cate)) {
@ -506,24 +505,14 @@ public class AliYun {
downloadUrl = mediaUrl; downloadUrl = mediaUrl;
} }
if ("url".equals(response)) return new Object[]{200, "text/plain; charset=utf-8", new ByteArrayInputStream(downloadUrl.getBytes("UTF-8"))};
Map<String, String> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); Map<String, String> headers = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (String key : params.keySet()) headers.put(key, params.get(key)); for (String key : params.keySet()) {
headers.remove("do"); if (key.equals("referer") || key.equals("icy-metadata") || key.equals("range") || key.equals("connection") || key.equals("accept-encoding") || key.equals("user-agent")) {
headers.remove("host"); headers.put(key, params.get(key));
headers.remove("type"); }
headers.remove("cate");
headers.remove("fileId");
headers.remove("shareId");
headers.remove("mediaId");
headers.remove("templateId");
headers.remove("remote-addr");
headers.remove("http-client-ip");
return new Object[]{ProxyVideo.proxy(downloadUrl, headers)};
} }
private Object[] previewProxy(String shareId, String fileId, String templateId) { return new Object[]{ProxyVideo.proxy(downloadUrl, headers)};
return new Object[]{200, "application/vnd.apple.mpegurl", new ByteArrayInputStream(getM3u8(shareId, fileId, templateId).getBytes())};
} }
private String getM3u8Url(String shareId, String fileId, String templateId) { private String getM3u8Url(String shareId, String fileId, String templateId) {

View File

@ -44,15 +44,13 @@ public class ProxyVideo {
} }
public static NanoHTTPD.Response proxy(String url, Map<String, String> headers) throws Exception { public static NanoHTTPD.Response proxy(String url, Map<String, String> headers) throws Exception {
Status status = headers.containsKey("Range") ? Status.PARTIAL_CONTENT : Status.OK;
if (!headers.containsKey("Range")) headers.put("Range", "bytes=0-");
Response response = OkHttp.newCall(url, headers); Response response = OkHttp.newCall(url, headers);
String contentType = response.headers().get("Content-Type"); String contentType = response.headers().get("Content-Type");
String hContentLength = response.headers().get("Content-Length"); String hContentLength = response.headers().get("Content-Length");
String contentDisposition = response.headers().get("Content-Disposition"); String contentDisposition = response.headers().get("Content-Disposition");
long contentLength = hContentLength != null ? Long.parseLong(hContentLength) : 0; long contentLength = hContentLength != null ? Long.parseLong(hContentLength) : 0;
if (contentDisposition != null) contentType = getMimeType(contentDisposition); if (contentDisposition != null) contentType = getMimeType(contentDisposition);
NanoHTTPD.Response resp = newFixedLengthResponse(status, contentType, response.body().byteStream(), contentLength); NanoHTTPD.Response resp = newFixedLengthResponse(Status.PARTIAL_CONTENT, contentType, response.body().byteStream(), contentLength);
for (String key : response.headers().names()) resp.addHeader(key, response.headers().get(key)); for (String key : response.headers().names()) resp.addHeader(key, response.headers().get(key));
return resp; return resp;
} }

Binary file not shown.

View File

@ -1 +1 @@
4795d43e5d59d58d6d4a92361f73974e 60be8553ec8072f56c9f73452fd83d71