1
0
Fork 0
mirror of https://github.com/Radarr/Radarr synced 2024-12-26 09:49:00 +00:00

Clean up Transmission

This commit is contained in:
Devin Buhl 2017-01-13 11:13:41 -05:00
parent 317f8917b9
commit fdd06127fc
3 changed files with 21 additions and 60 deletions

View file

@ -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()

View file

@ -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
{ {

View file

@ -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()