Skip to content

Commit

Permalink
New: Improve fields selection for Discord connection
Browse files Browse the repository at this point in the history
  • Loading branch information
mynameisbogdan committed Dec 6, 2023
1 parent 65d79dd commit bc4847c
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 9 deletions.
4 changes: 2 additions & 2 deletions src/NzbDrone.Core/Notifications/Discord/Discord.cs
Expand Up @@ -442,15 +442,15 @@ public override void OnManualInteractionRequired(ManualInteractionRequiredMessag
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ")
};

if (Settings.ManualInteractionFields.Contains((int)DiscordGrabFieldType.Poster))
if (Settings.ManualInteractionFields.Contains((int)DiscordManualInteractionFieldType.Poster))
{
embed.Thumbnail = new DiscordImage
{
Url = movie.MovieMetadata.Value.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Poster)?.RemoteUrl
};
}

if (Settings.ManualInteractionFields.Contains((int)DiscordGrabFieldType.Fanart))
if (Settings.ManualInteractionFields.Contains((int)DiscordManualInteractionFieldType.Fanart))
{
embed.Image = new DiscordImage
{
Expand Down
56 changes: 49 additions & 7 deletions src/NzbDrone.Core/Notifications/Discord/DiscordSettings.cs
Expand Up @@ -19,12 +19,54 @@ public class DiscordSettings : IProviderConfig
public DiscordSettings()
{
// Set Default Fields
GrabFields = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
ImportFields = new[] { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12 };
ManualInteractionFields = new[] { 0, 1, 2, 3, 5, 6, 7, 8, 9 };
GrabFields = new[]
{
(int)DiscordGrabFieldType.Overview,
(int)DiscordGrabFieldType.Rating,
(int)DiscordGrabFieldType.Genres,
(int)DiscordGrabFieldType.Quality,
(int)DiscordGrabFieldType.Group,
(int)DiscordGrabFieldType.Size,
(int)DiscordGrabFieldType.Links,
(int)DiscordGrabFieldType.Release,
(int)DiscordGrabFieldType.Poster,
(int)DiscordGrabFieldType.Fanart,
(int)DiscordGrabFieldType.Indexer,
(int)DiscordGrabFieldType.CustomFormats,
(int)DiscordGrabFieldType.CustomFormatScore
};
ImportFields = new[]
{
(int)DiscordImportFieldType.Overview,
(int)DiscordImportFieldType.Rating,
(int)DiscordImportFieldType.Genres,
(int)DiscordImportFieldType.Quality,
(int)DiscordImportFieldType.Codecs,
(int)DiscordImportFieldType.Group,
(int)DiscordImportFieldType.Size,
(int)DiscordImportFieldType.Languages,
(int)DiscordImportFieldType.Subtitles,
(int)DiscordImportFieldType.Links,
(int)DiscordImportFieldType.Release,
(int)DiscordImportFieldType.Poster,
(int)DiscordImportFieldType.Fanart
};
ManualInteractionFields = new[]
{
(int)DiscordManualInteractionFieldType.Overview,
(int)DiscordManualInteractionFieldType.Rating,
(int)DiscordManualInteractionFieldType.Genres,
(int)DiscordManualInteractionFieldType.Quality,
(int)DiscordManualInteractionFieldType.Group,
(int)DiscordManualInteractionFieldType.Size,
(int)DiscordManualInteractionFieldType.Links,
(int)DiscordManualInteractionFieldType.DownloadTitle,
(int)DiscordManualInteractionFieldType.Poster,
(int)DiscordManualInteractionFieldType.Fanart
};
}

private static readonly DiscordSettingsValidator Validator = new DiscordSettingsValidator();
private static readonly DiscordSettingsValidator Validator = new ();

[FieldDefinition(0, Label = "Webhook URL", HelpText = "Discord channel webhook url")]
public string WebHookUrl { get; set; }
Expand All @@ -38,13 +80,13 @@ public DiscordSettings()
[FieldDefinition(3, Label = "Author", Advanced = true, HelpText = "Override the embed author that shows for this notification, Blank is instance name", Type = FieldType.Textbox)]
public string Author { get; set; }

[FieldDefinition(4, Label = "On Grab Fields", Advanced = true, SelectOptions = typeof(DiscordGrabFieldType), HelpText = "Change the fields that are passed in for this 'on grab' notification", Type = FieldType.TagSelect)]
[FieldDefinition(4, Label = "On Grab Fields", Advanced = true, SelectOptions = typeof(DiscordGrabFieldType), HelpText = "Change the fields that are passed in for this 'on grab' notification", Type = FieldType.Select)]
public IEnumerable<int> GrabFields { get; set; }

[FieldDefinition(5, Label = "On Import Fields", Advanced = true, SelectOptions = typeof(DiscordImportFieldType), HelpText = "Change the fields that are passed for this 'on import' notification", Type = FieldType.TagSelect)]
[FieldDefinition(5, Label = "On Import Fields", Advanced = true, SelectOptions = typeof(DiscordImportFieldType), HelpText = "Change the fields that are passed for this 'on import' notification", Type = FieldType.Select)]
public IEnumerable<int> ImportFields { get; set; }

[FieldDefinition(6, Label = "On Manual Interaction Fields", Advanced = true, SelectOptions = typeof(DiscordManualInteractionFieldType), HelpText = "Change the fields that are passed for this 'on manual interaction' notification", Type = FieldType.TagSelect)]
[FieldDefinition(6, Label = "On Manual Interaction Fields", Advanced = true, SelectOptions = typeof(DiscordManualInteractionFieldType), HelpText = "Change the fields that are passed for this 'on manual interaction' notification", Type = FieldType.Select)]
public IEnumerable<int> ManualInteractionFields { get; set; }

public NzbDroneValidationResult Validate()
Expand Down

0 comments on commit bc4847c

Please sign in to comment.