Added path mappings for Jellyfin/Emby connections

This commit is contained in:
Jendrik Weise 2023-07-25 05:12:43 +02:00
parent 9d384d92f1
commit a798ff3dcc
2 changed files with 19 additions and 2 deletions

View File

@ -3,6 +3,8 @@ using System.Collections.Generic;
using System.Net;
using FluentValidation.Results;
using NLog;
using NzbDrone.Common.Disk;
using NzbDrone.Common.Extensions;
using NzbDrone.Common.Http;
using NzbDrone.Core.Tv;
@ -46,7 +48,14 @@ namespace NzbDrone.Core.Notifications.Emby
foreach (var path in paths)
{
_proxy.Update(settings, path, updateType);
var mappedPath = new OsPath(path);
if (settings.MapTo.IsNotNullOrWhiteSpace())
{
mappedPath = new OsPath(settings.MapTo) + (mappedPath - new OsPath(settings.MapFrom));
}
_proxy.Update(settings, mappedPath.ToString(), updateType);
}
}

View File

@ -13,6 +13,8 @@ namespace NzbDrone.Core.Notifications.Emby
{
RuleFor(c => c.Host).ValidHost();
RuleFor(c => c.ApiKey).NotEmpty();
RuleFor(c => c.MapFrom).NotEmpty().Unless(c => c.MapTo.IsNullOrWhiteSpace());
RuleFor(c => c.MapTo).NotEmpty().Unless(c => c.MapFrom.IsNullOrWhiteSpace());
}
}
@ -31,7 +33,7 @@ namespace NzbDrone.Core.Notifications.Emby
[FieldDefinition(1, Label = "Port")]
public int Port { get; set; }
[FieldDefinition(2, Label = "Use SSL", Type = FieldType.Checkbox, HelpText = "Connect to Emby over HTTPS instead of HTTP")]
[FieldDefinition(2, Label = "Use SSL", Type = FieldType.Checkbox, HelpText = "Connect to Emby/Jellyfin over HTTPS instead of HTTP")]
public bool UseSsl { get; set; }
[FieldDefinition(3, Label = "API Key", Privacy = PrivacyLevel.ApiKey)]
@ -46,6 +48,12 @@ namespace NzbDrone.Core.Notifications.Emby
[FieldDefinition(5, Label = "Update Library By Name", HelpText = "Update Library by name rather than path(Requires 'UpdateLibrary')", Type = FieldType.Checkbox, Advanced = true)]
public bool UpdateLibraryByName { get; set; }
[FieldDefinition(5, Label = "Map Paths From", HelpText = "Sonarr path, used to modify series paths when Emby/Jellyfin sees library path location differently from Sonarr(Requires 'UpdateLibrary')", Type = FieldType.Textbox, Advanced = true)]
public string MapFrom { get; set; }
[FieldDefinition(5, Label = "Map Paths To", HelpText = "Emby/Jellyfin path, used to modify series paths when Emby/Jellyfin sees library path location differently from Sonarr(Requires 'UpdateLibrary')", Type = FieldType.Textbox, Advanced = true)]
public string MapTo { get; set; }
[JsonIgnore]
public string Address => $"{Host.ToUrlHost()}:{Port}";