Change episode file quality

New: Ability to change the quality of an episode in the database
This commit is contained in:
Mark McDowall 2012-09-03 16:26:52 -07:00
commit a7fd486b03
12 changed files with 143 additions and 8 deletions

View file

@ -1,6 +1,8 @@
using System;
using System.Web.Mvc;
using NzbDrone.Core.Jobs;
using NzbDrone.Core.Providers;
using NzbDrone.Core.Repository.Quality;
using NzbDrone.Web.Models;
namespace NzbDrone.Web.Controllers
@ -8,10 +10,12 @@ namespace NzbDrone.Web.Controllers
public class EpisodeController : Controller
{
private readonly JobProvider _jobProvider;
private readonly MediaFileProvider _mediaFileProvider;
public EpisodeController(JobProvider jobProvider)
public EpisodeController(JobProvider jobProvider, MediaFileProvider mediaFileProvider)
{
_jobProvider = jobProvider;
_mediaFileProvider = mediaFileProvider;
}
public JsonResult Search(int episodeId)
@ -52,5 +56,19 @@ namespace NzbDrone.Web.Controllers
_jobProvider.QueueJob(typeof(RenameSeriesJob));
return JsonNotificationResult.Queued("Series rename");
}
[HttpPost]
public JsonResult ChangeEpisodeQuality(int episodeFileId, QualityTypes quality)
{
_mediaFileProvider.ChangeQuality(episodeFileId, quality);
return Json("ok");
}
[HttpPost]
public JsonResult ChangeSeasonQuality(int seriesId, int seasonNumber, QualityTypes quality)
{
_mediaFileProvider.ChangeQuality(seriesId, seasonNumber, quality);
return Json("ok");
}
}
}

View file

@ -128,6 +128,11 @@ namespace NzbDrone.Web.Controllers
CommonStatus = GetCommonStatus(s.Episodes)
}).ToList();
model.Seasons = seasons;
var qualities = (from QualityTypes q in Enum.GetValues(typeof(QualityTypes))
select new { Id = (int)q, Name = q.ToString() }).ToList();
model.QualitySelectList = new SelectList(qualities.Where(q => q.Id > 0), "Id", "Name");
return View(model);
}
@ -216,12 +221,14 @@ namespace NzbDrone.Web.Controllers
var episodeFileId = 0;
var episodePath = String.Empty;
var episodeQuality = "N/A";
var episodeQualityId = 0;
if (e.EpisodeFile != null)
{
episodePath = e.EpisodeFile.Path;
episodeFileId = e.EpisodeFile.EpisodeFileId;
episodeQuality = e.EpisodeFile.Quality.ToString();
episodeQualityId = (int)e.EpisodeFile.Quality;
}
var airDate = String.Empty;
@ -232,6 +239,7 @@ namespace NzbDrone.Web.Controllers
episodes.Add(new EpisodeModel
{
EpisodeId = e.EpisodeId,
EpisodeFileId = episodeFileId,
EpisodeNumber = e.EpisodeNumber,
SeasonNumber = e.SeasonNumber,
Title = e.Title,
@ -240,6 +248,7 @@ namespace NzbDrone.Web.Controllers
Path = episodePath,
Status = e.Status.ToString(),
Quality = episodeQuality,
QualityId = episodeQualityId,
Ignored = e.Ignored
});
}