mirror of
https://github.com/Radarr/Radarr
synced 2024-12-26 09:49:00 +00:00
Clean up Transmission
This commit is contained in:
parent
317f8917b9
commit
fdd06127fc
3 changed files with 21 additions and 60 deletions
|
@ -112,12 +112,12 @@ public void Setup()
|
||||||
|
|
||||||
protected void GivenTvCategory()
|
protected void GivenTvCategory()
|
||||||
{
|
{
|
||||||
_settings.TvCategory = "sonarr";
|
_settings.MovieCategory = "radarr";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void GivenTvDirectory()
|
protected void GivenTvDirectory()
|
||||||
{
|
{
|
||||||
_settings.TvDirectory = @"C:/Downloads/Finished/sonarr";
|
_settings.MovieDirectory = @"C:/Downloads/Finished/radarr";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void GivenFailedDownload()
|
protected void GivenFailedDownload()
|
||||||
|
|
|
@ -54,21 +54,21 @@ public override IEnumerable<DownloadClientItem> GetItems()
|
||||||
|
|
||||||
var outputPath = new OsPath(torrent.DownloadDir);
|
var outputPath = new OsPath(torrent.DownloadDir);
|
||||||
|
|
||||||
if (Settings.TvDirectory.IsNotNullOrWhiteSpace())
|
if (Settings.MovieDirectory.IsNotNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
if (!new OsPath(Settings.TvDirectory).Contains(outputPath)) continue;
|
if (!new OsPath(Settings.MovieDirectory).Contains(outputPath)) continue;
|
||||||
}
|
}
|
||||||
else if (Settings.TvCategory.IsNotNullOrWhiteSpace())
|
else if (Settings.MovieCategory.IsNotNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
var directories = outputPath.FullPath.Split('\\', '/');
|
var directories = outputPath.FullPath.Split('\\', '/');
|
||||||
if (!directories.Contains(Settings.TvCategory)) continue;
|
if (!directories.Contains(Settings.MovieCategory)) continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
outputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, outputPath);
|
outputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, outputPath);
|
||||||
|
|
||||||
var item = new DownloadClientItem();
|
var item = new DownloadClientItem();
|
||||||
item.DownloadId = torrent.HashString.ToUpper();
|
item.DownloadId = torrent.HashString.ToUpper();
|
||||||
item.Category = Settings.TvCategory;
|
item.Category = Settings.MovieCategory;
|
||||||
item.Title = torrent.Name;
|
item.Title = torrent.Name;
|
||||||
|
|
||||||
item.DownloadClient = Definition.Name;
|
item.DownloadClient = Definition.Name;
|
||||||
|
@ -123,9 +123,9 @@ public override DownloadClientStatus GetStatus()
|
||||||
var config = _proxy.GetConfig(Settings);
|
var config = _proxy.GetConfig(Settings);
|
||||||
var destDir = config.GetValueOrDefault("download-dir") as string;
|
var destDir = config.GetValueOrDefault("download-dir") as string;
|
||||||
|
|
||||||
if (Settings.TvCategory.IsNotNullOrWhiteSpace())
|
if (Settings.MovieCategory.IsNotNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
destDir = string.Format("{0}/.{1}", destDir, Settings.TvCategory);
|
destDir = string.Format("{0}/.{1}", destDir, Settings.MovieCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new DownloadClientStatus
|
return new DownloadClientStatus
|
||||||
|
@ -137,56 +137,23 @@ public override DownloadClientStatus GetStatus()
|
||||||
|
|
||||||
protected override string AddFromMagnetLink(RemoteEpisode remoteEpisode, string hash, string magnetLink)
|
protected override string AddFromMagnetLink(RemoteEpisode remoteEpisode, string hash, string magnetLink)
|
||||||
{
|
{
|
||||||
_proxy.AddTorrentFromUrl(magnetLink, GetDownloadDirectory(), Settings);
|
throw new NotImplementedException("Episodes are not working with Radarr");
|
||||||
|
|
||||||
var isRecentEpisode = remoteEpisode.IsRecentEpisode();
|
|
||||||
|
|
||||||
if (isRecentEpisode && Settings.RecentTvPriority == (int)TransmissionPriority.First ||
|
|
||||||
!isRecentEpisode && Settings.OlderTvPriority == (int)TransmissionPriority.First)
|
|
||||||
{
|
|
||||||
_proxy.MoveTorrentToTopInQueue(hash, Settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
return hash;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override string AddFromTorrentFile(RemoteEpisode remoteEpisode, string hash, string filename, byte[] fileContent)
|
protected override string AddFromTorrentFile(RemoteEpisode remoteEpisode, string hash, string filename, byte[] fileContent)
|
||||||
{
|
{
|
||||||
_proxy.AddTorrentFromData(fileContent, GetDownloadDirectory(), Settings);
|
throw new NotImplementedException("Episodes are not working with Radarr");
|
||||||
|
|
||||||
var isRecentEpisode = remoteEpisode.IsRecentEpisode();
|
|
||||||
|
|
||||||
if (isRecentEpisode && Settings.RecentTvPriority == (int)TransmissionPriority.First ||
|
|
||||||
!isRecentEpisode && Settings.OlderTvPriority == (int)TransmissionPriority.First)
|
|
||||||
{
|
|
||||||
_proxy.MoveTorrentToTopInQueue(hash, Settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
return hash;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink)
|
protected override string AddFromMagnetLink(RemoteMovie remoteMovie, string hash, string magnetLink)
|
||||||
{
|
{
|
||||||
_proxy.AddTorrentFromUrl(magnetLink, GetDownloadDirectory(), Settings);
|
_proxy.AddTorrentFromUrl(magnetLink, GetDownloadDirectory(), Settings);
|
||||||
if (remoteMovie.Release.Age < 14 && Settings.RecentTvPriority == (int)TransmissionPriority.First ||
|
|
||||||
remoteMovie.Release.Age > 14 && Settings.OlderTvPriority == (int)TransmissionPriority.First)
|
|
||||||
{
|
|
||||||
_proxy.MoveTorrentToTopInQueue(hash, Settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent)
|
protected override string AddFromTorrentFile(RemoteMovie remoteMovie, string hash, string filename, byte[] fileContent)
|
||||||
{
|
{
|
||||||
_proxy.AddTorrentFromData(fileContent, GetDownloadDirectory(), Settings);
|
_proxy.AddTorrentFromData(fileContent, GetDownloadDirectory(), Settings);
|
||||||
|
|
||||||
if (remoteMovie.Release.Age < 14 && Settings.RecentTvPriority == (int)TransmissionPriority.First ||
|
|
||||||
remoteMovie.Release.Age > 14 && Settings.OlderTvPriority == (int)TransmissionPriority.First)
|
|
||||||
{
|
|
||||||
_proxy.MoveTorrentToTopInQueue(hash, Settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,16 +171,16 @@ protected virtual OsPath GetOutputPath(OsPath outputPath, TransmissionTorrent to
|
||||||
|
|
||||||
protected string GetDownloadDirectory()
|
protected string GetDownloadDirectory()
|
||||||
{
|
{
|
||||||
if (Settings.TvDirectory.IsNotNullOrWhiteSpace())
|
if (Settings.MovieDirectory.IsNotNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
return Settings.TvDirectory;
|
return Settings.MovieDirectory;
|
||||||
}
|
}
|
||||||
else if (Settings.TvCategory.IsNotNullOrWhiteSpace())
|
else if (Settings.MovieCategory.IsNotNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
var config = _proxy.GetConfig(Settings);
|
var config = _proxy.GetConfig(Settings);
|
||||||
var destDir = (string)config.GetValueOrDefault("download-dir");
|
var destDir = (string)config.GetValueOrDefault("download-dir");
|
||||||
|
|
||||||
return string.Format("{0}/{1}", destDir.TrimEnd('/'), Settings.TvCategory);
|
return string.Format("{0}/{1}", destDir.TrimEnd('/'), Settings.MovieCategory);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,10 +16,10 @@ public TransmissionSettingsValidator()
|
||||||
|
|
||||||
RuleFor(c => c.UrlBase).ValidUrlBase();
|
RuleFor(c => c.UrlBase).ValidUrlBase();
|
||||||
|
|
||||||
RuleFor(c => c.TvCategory).Matches(@"^\.?[-a-z]*$", RegexOptions.IgnoreCase).WithMessage("Allowed characters a-z and -");
|
RuleFor(c => c.MovieCategory).Matches(@"^\.?[-a-z]*$", RegexOptions.IgnoreCase).WithMessage("Allowed characters a-z and -");
|
||||||
|
|
||||||
RuleFor(c => c.TvCategory).Empty()
|
RuleFor(c => c.MovieCategory).Empty()
|
||||||
.When(c => c.TvDirectory.IsNotNullOrWhiteSpace())
|
.When(c => c.MovieDirectory.IsNotNullOrWhiteSpace())
|
||||||
.WithMessage("Cannot use Category and Directory");
|
.WithMessage("Cannot use Category and Directory");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,18 +51,12 @@ public TransmissionSettings()
|
||||||
public string Password { get; set; }
|
public string Password { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(5, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional. Creates a [category] subdirectory in the output directory.")]
|
[FieldDefinition(5, Label = "Category", Type = FieldType.Textbox, HelpText = "Adding a category specific to Radarr avoids conflicts with unrelated downloads, but it's optional. Creates a [category] subdirectory in the output directory.")]
|
||||||
public string TvCategory { get; set; }
|
public string MovieCategory { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(6, Label = "Directory", Type = FieldType.Textbox, Advanced = true, HelpText = "Optional location to put downloads in, leave blank to use the default Transmission location")]
|
[FieldDefinition(6, Label = "Directory", Type = FieldType.Textbox, Advanced = true, HelpText = "Optional location to put downloads in, leave blank to use the default Transmission location")]
|
||||||
public string TvDirectory { get; set; }
|
public string MovieDirectory { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(7, Label = "Recent Priority", Type = FieldType.Select, SelectOptions = typeof(TransmissionPriority), HelpText = "Priority to use when grabbing movies that we're released within the last 14 days")]
|
[FieldDefinition(7, Label = "Use SSL", Type = FieldType.Checkbox)]
|
||||||
public int RecentTvPriority { get; set; }
|
|
||||||
|
|
||||||
[FieldDefinition(8, Label = "Older Priority", Type = FieldType.Select, SelectOptions = typeof(TransmissionPriority), HelpText = "Priority to use when grabbing movies that we're released over 14 days ago")]
|
|
||||||
public int OlderTvPriority { get; set; }
|
|
||||||
|
|
||||||
[FieldDefinition(9, Label = "Use SSL", Type = FieldType.Checkbox)]
|
|
||||||
public bool UseSsl { get; set; }
|
public bool UseSsl { get; set; }
|
||||||
|
|
||||||
public NzbDroneValidationResult Validate()
|
public NzbDroneValidationResult Validate()
|
||||||
|
|
Loading…
Reference in a new issue