diff --git a/application/index/controller/RemoteDownload.php b/application/index/controller/RemoteDownload.php
index 1259d512..98225cac 100644
--- a/application/index/controller/RemoteDownload.php
+++ b/application/index/controller/RemoteDownload.php
@@ -54,8 +54,9 @@ class RemoteDownload extends Controller{
$downloadStart = $aria2->addUrl(input("post.url"));
if($aria2->reqStatus){
$this->insertRecord($aria2,input("post.url"));
+ return json(["result"=>['success'=>true,'error'=>null]]);
}else{
- return json(['error'=>1,'message'=>$aria2->reqMsg]);
+ return json(["result"=>['success'=>false,'error'=>$aria2->reqMsg]]);
}
}
diff --git a/application/index/model/Aria2.php b/application/index/model/Aria2.php
index b6c44481..508bc919 100644
--- a/application/index/model/Aria2.php
+++ b/application/index/model/Aria2.php
@@ -129,6 +129,13 @@ class Aria2 extends Model{
# code...
break;
}
+ if(($respondData["result"]["files"][$downloadInfo["file_index"]]["completedLength"] == $respondData["result"]["files"][$downloadInfo["file_index"]]["length"]) && $respondData["result"]["status"]=="active"){
+ $this->setComplete($respondData["result"],$downloadInfo);
+ Db::name("download")->where("id",$id)
+ ->update([
+ "status" => "complete",
+ ]);
+ }
}else{
$this->reqStatus = 0;
$this->reqMsg = "空间容量不足";
diff --git a/application/index/view/home/home.html b/application/index/view/home/home.html
index 593b101f..76332275 100644
--- a/application/index/view/home/home.html
+++ b/application/index/view/home/home.html
@@ -28,6 +28,8 @@
allowSource : "{$policyData.origin_link}",
upUrl : "{$policyData.server}",
allowShare:"{$groupData.allow_share}",
+ allowRemoteDownload:"{:explode(",",$groupData.aria2)[0]}",
+ allowTorrentDownload:"{:explode(",",$groupData.aria2)[1]}",
};
diff --git a/static/js/angular-filemanager.min.js b/static/js/angular-filemanager.min.js
index 25542c33..bb1c720d 100644
--- a/static/js/angular-filemanager.min.js
+++ b/static/js/angular-filemanager.min.js
@@ -323,6 +323,17 @@ function(e, r) {
e.modal("move", !0)
})
},
+ e.startRemoteDownload = function(){
+ if(e.temp['url'] == ""){
+ return e.apiMiddleware.apiHandler.error = a.instant("下载URL不能为空");
+ }else{
+ e.apiMiddleware.apiHandler.error = !1;
+ return void e.apiMiddleware.startRemoteDownload(e.temp['url'],n.selectedModalPath).then(function() {
+ e.modal("remoteDownload", !0);
+ toastr["success"]("离线下载任务已创建");
+ })
+ }
+ }
e.rename = function() {
var r = e.singleSelection(),
n = r.tempModel.name,
@@ -456,6 +467,11 @@ function(e) {
i = "/" + n.join("/");
return e.singleSelection() && !e.singleSelection().isFolder() && (i += "/" + e.singleSelection().tempModel.name),
i.replace(/\/\//, "/")
+ },
+ r.getSelectedPathForDownload = function() {
+ var path = r.selectedModalPath.filter(Boolean);
+ var result = '/' + path.join('/');
+ return result.replace(/\/\//, '/');
}
}
])
@@ -739,7 +755,7 @@ function(e) {
e.module("FileManagerApp").provider("fileManagerConfig",
function() {
var r = {
- appName: "angular-filemanager v1.5",
+ appName: "Cloudreve FileManager",
defaultLang: "zh_cn",
listUrl: "/File/ListFile",
previewUrl:"/File/Preview",
@@ -757,6 +773,7 @@ function(e) {
extractUrl: "bridges/php/handler.php",
permissionsUrl: "bridges/php/handler.php",
sourceUrl:"/File/gerSource",
+ remoteDownloadUrl: "/RemoteDownload/addUrl",
basePath: "/",
searchForm: !0,
sidebar: !0,
@@ -778,7 +795,9 @@ function(e) {
remove: !0,
createFolder: !0,
pickFiles: !1,
- pickFolders: !1
+ pickFolders: !1,
+ allowRemoteDownload: !1,
+ allowTorrentDownload: !1,
},
multipleDownloadFileName: "angular-filemanager.zip",
filterFileExtensions: [],
@@ -994,6 +1013,25 @@ function(e, r) {
}),
s.promise
},
+ o.prototype.startRemoteDownload = function(api,url,path) {
+ var o = this,
+ s = n.defer(),
+ l = {
+ action: "remoteDownload",
+ path: path,
+ url:url
+ };
+ return o.inprocess = !0,
+ o.error = "",
+ e.post(api, l).success(function(e, r) {
+ o.deferredHandler(e, s, r)
+ }).error(function(e, r) {
+ o.deferredHandler(e, s, r, a.instant("error_moving"))
+ })["finally"](function() {
+ o.inprocess = !1
+ }),
+ s.promise
+ },
o.prototype.remove = function(r, i,dir) {
var t = this,
o = n.defer(),
@@ -1307,6 +1345,9 @@ function(e) {
var dirList = this.getFileList(dir);
return this.apiHandler.move(r.moveUrl,dirList ,i, this.getPath(n))
},
+ i.prototype.startRemoteDownload = function(url,path) {
+ return this.apiHandler.startRemoteDownload(r.remoteDownloadUrl,url ,this.getPath(path))
+ },
i.prototype.remove = function(e,dir) {
var n = this.getFileList(e);
var dirList = this.getFileList(dir);
@@ -1516,8 +1557,8 @@ angular.module("FileManagerApp").run(["$templateCache",
e.put("src/templates/main-table-modal.html", '
'),
e.put("src/templates/main-table.html", '\r\n'),
e.put("src/templates/main.html", '\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n'),
- e.put("src/templates/modals.html", '\r\n
\r\n
\r\n \r\n
\r\n
\r\n
![{{singleSelection().model.name}}]()
\r\n
{{\'loading\' | translate}} ...\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{singleSelection() && singleSelection().model.name}} 的源文件地址: \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{\'loading\' | translate}} ...\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{\'loading\' | translate}} ...\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
的分享地址: \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n'),
- e.put("src/templates/navbar.html", '\r\n'),
+ e.put("src/templates/modals.html", '\r\n
\r\n
\r\n \r\n
\r\n
\r\n
![{{singleSelection().model.name}}]()
\r\n
{{\'loading\' | translate}} ...\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
{{singleSelection() && singleSelection().model.name}} 的源文件地址: \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{\'loading\' | translate}} ...\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{\'loading\' | translate}} ...\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
的分享地址: \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n'),
+ e.put("src/templates/navbar.html", '