mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-12 08:07:10 -07:00
Added new helper to find the best file size format given a long with file size in bytes.
Added view under system to see which folders have not been processed in dropDir.
This commit is contained in:
parent
cea511a460
commit
54e7092e2d
7 changed files with 214 additions and 2 deletions
|
@ -1,7 +1,12 @@
|
|||
using System.Web.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Web.Mvc;
|
||||
using NzbDrone.Core.Helpers;
|
||||
using NzbDrone.Core.Providers;
|
||||
using NzbDrone.Core.Providers.Core;
|
||||
using NzbDrone.Core.Providers.Jobs;
|
||||
using NzbDrone.Web.Models;
|
||||
using Telerik.Web.Mvc;
|
||||
|
||||
namespace NzbDrone.Web.Controllers
|
||||
|
@ -11,12 +16,14 @@ namespace NzbDrone.Web.Controllers
|
|||
private readonly JobProvider _jobProvider;
|
||||
private readonly IndexerProvider _indexerProvider;
|
||||
private readonly ConfigProvider _configProvider;
|
||||
private readonly DiskProvider _diskProvider;
|
||||
|
||||
public SystemController(JobProvider jobProvider, IndexerProvider indexerProvider, ConfigProvider configProvider)
|
||||
public SystemController(JobProvider jobProvider, IndexerProvider indexerProvider, ConfigProvider configProvider, DiskProvider diskProvider)
|
||||
{
|
||||
_jobProvider = jobProvider;
|
||||
_indexerProvider = indexerProvider;
|
||||
_configProvider = configProvider;
|
||||
_diskProvider = diskProvider;
|
||||
}
|
||||
|
||||
public ActionResult Jobs()
|
||||
|
@ -58,5 +65,64 @@ namespace NzbDrone.Web.Controllers
|
|||
_configProvider.SetValue(key, value);
|
||||
return View(new GridModel(_configProvider.All()));
|
||||
}
|
||||
|
||||
//PostDownloadView
|
||||
public ActionResult PendingProcessing()
|
||||
{
|
||||
ViewData["DropDir"] = _configProvider.SabDropDirectory;
|
||||
return View();
|
||||
}
|
||||
|
||||
[GridAction]
|
||||
public ActionResult _PendingProcessingAjaxBinding()
|
||||
{
|
||||
var dropDir = _configProvider.SabDropDirectory;
|
||||
var subFolders = _diskProvider.GetDirectories(dropDir);
|
||||
|
||||
var models = new List<PendingProcessingModel>();
|
||||
|
||||
//Get the CreationTime and Files
|
||||
foreach (var folder in subFolders)
|
||||
{
|
||||
var model = new PendingProcessingModel();
|
||||
model.Name = new DirectoryInfo(folder).Name;
|
||||
model.Created = _diskProvider.DirectoryDateCreated(folder);
|
||||
model.Path = folder.Replace(Path.DirectorySeparatorChar, '|').Replace(Path.VolumeSeparatorChar, '^').Replace('\'', '`');
|
||||
|
||||
var files = _diskProvider.GetFileInfos(folder, "*.*", SearchOption.AllDirectories);
|
||||
|
||||
var fileResult = "<div><div style=\"width: 600px; display: inline-block;\"><b>Name</b></div><div style=\"display: inline-block;\"><b>Size</b></div></div>";
|
||||
|
||||
foreach (var fileInfo in files)
|
||||
{
|
||||
fileResult += String.Format("<div><div style=\"width: 600px; display: inline-block;\">{0}</div><div style=\"display: inline-block;\">{1}</div></div>", fileInfo.Name,
|
||||
FileSizeFormatHelper.Format(fileInfo.Length, 1));
|
||||
}
|
||||
|
||||
model.Files = fileResult;
|
||||
|
||||
models.Add(model);
|
||||
}
|
||||
|
||||
return View(new GridModel(models));
|
||||
}
|
||||
|
||||
public JsonResult RenamePendingProcessing(string path)
|
||||
{
|
||||
path = path.Replace('|', Path.DirectorySeparatorChar).Replace('^', Path.VolumeSeparatorChar).Replace('`', '\'');
|
||||
|
||||
var di = new DirectoryInfo(path);
|
||||
var dropDir = di.Parent.FullName;
|
||||
var folder = di.Name;
|
||||
|
||||
if (!folder.StartsWith("_UNPACK_") && !folder.StartsWith("_FAILED_"))
|
||||
return new JsonResult { Data = "no change" };
|
||||
|
||||
folder = folder.Substring(8);
|
||||
var newPath = dropDir + Path.DirectorySeparatorChar + folder;
|
||||
_diskProvider.MoveDirectory(path, newPath);
|
||||
|
||||
return new JsonResult { Data = "ok" };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue