From d8a06b7632c354999170d15100ac67b8da8b486d Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 14 Aug 2023 14:18:36 +0800 Subject: [PATCH] Support local torrent --- .../java/com/fongmi/android/tv/utils/Download.java | 1 + .../java/com/fongmi/android/tv/utils/Sniffer.java | 2 +- .../java/com/xunlei/downloadlib/XLTaskHelper.java | 1 + .../com/xunlei/downloadlib/parameter/GetTaskId.java | 11 +++++++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Download.java b/app/src/main/java/com/fongmi/android/tv/utils/Download.java index 295581496..dc2d75caf 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Download.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Download.java @@ -32,6 +32,7 @@ public class Download { } public void start() { + if (url.startsWith("file")) return; if (callback == null) doInBackground(); else App.execute(this::doInBackground); } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java b/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java index c2dd4ce17..e56f4bcda 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java @@ -32,7 +32,7 @@ public class Sniffer { } public static boolean isTorrent(String url) { - return url.startsWith("http") && url.endsWith(".torrent"); + return (url.startsWith("http") || url.startsWith("file")) && url.endsWith(".torrent"); } public static boolean isAds(Uri uri) { diff --git a/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java b/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java index a4f53a159..76c904971 100644 --- a/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java +++ b/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java @@ -47,6 +47,7 @@ public class XLTaskHelper { } public synchronized GetTaskId parse(String url, File savePath) { + if (url.startsWith("file://")) return new GetTaskId(url, savePath); if (url.startsWith("thunder://")) url = getManager().parserThunderUrl(url); String fileName = getManager().getFileNameFromUrl(url); GetTaskId taskId = new GetTaskId(savePath, fileName, url); diff --git a/thunder/src/main/java/com/xunlei/downloadlib/parameter/GetTaskId.java b/thunder/src/main/java/com/xunlei/downloadlib/parameter/GetTaskId.java index 243b2eb29..7ef857c85 100644 --- a/thunder/src/main/java/com/xunlei/downloadlib/parameter/GetTaskId.java +++ b/thunder/src/main/java/com/xunlei/downloadlib/parameter/GetTaskId.java @@ -1,5 +1,7 @@ package com.xunlei.downloadlib.parameter; +import com.github.catvod.utils.Path; + import java.io.File; public class GetTaskId { @@ -13,6 +15,15 @@ public class GetTaskId { this.mSavePath = savePath; } + public GetTaskId(String url, File savePath) { + File file = new File(url.substring(7)); + File dest = new File(savePath, file.getName()); + Path.copy(file, dest); + this.mFileName = file.getName(); + this.mSavePath = savePath; + this.mRealUrl = url; + } + public GetTaskId(File savePath, String fileName, String realUrl) { this.mSavePath = savePath; this.mFileName = fileName;