New: Add Albums object to Grab and Import Webhook base

This commit is contained in:
Qstick 2023-01-16 20:39:22 -06:00
parent a2d7239304
commit e3c1009a2e
6 changed files with 12 additions and 8 deletions

View file

@ -38,7 +38,7 @@ namespace NzbDrone.Core.Notifications.CustomScript
public override void OnGrab(GrabMessage message) public override void OnGrab(GrabMessage message)
{ {
var artist = message.Artist; var artist = message.Artist;
var remoteAlbum = message.Album; var remoteAlbum = message.RemoteAlbum;
var releaseGroup = remoteAlbum.ParsedAlbumInfo.ReleaseGroup; var releaseGroup = remoteAlbum.ParsedAlbumInfo.ReleaseGroup;
var environmentVariables = new StringDictionary(); var environmentVariables = new StringDictionary();

View file

@ -26,7 +26,7 @@ namespace NzbDrone.Core.Notifications.Discord
public override void OnGrab(GrabMessage message) public override void OnGrab(GrabMessage message)
{ {
var artist = message.Artist; var artist = message.Artist;
var albums = message.Album.Albums; var albums = message.RemoteAlbum.Albums;
var artistMetadata = message.Artist.Metadata.Value; var artistMetadata = message.Artist.Metadata.Value;
var embed = new Embed var embed = new Embed
@ -86,16 +86,16 @@ namespace NzbDrone.Core.Notifications.Discord
break; break;
case DiscordGrabFieldType.Group: case DiscordGrabFieldType.Group:
discordField.Name = "Group"; discordField.Name = "Group";
discordField.Value = message.Album.ParsedAlbumInfo.ReleaseGroup; discordField.Value = message.RemoteAlbum.ParsedAlbumInfo.ReleaseGroup;
break; break;
case DiscordGrabFieldType.Size: case DiscordGrabFieldType.Size:
discordField.Name = "Size"; discordField.Name = "Size";
discordField.Value = BytesToString(message.Album.Release.Size); discordField.Value = BytesToString(message.RemoteAlbum.Release.Size);
discordField.Inline = true; discordField.Inline = true;
break; break;
case DiscordGrabFieldType.Release: case DiscordGrabFieldType.Release:
discordField.Name = "Release"; discordField.Name = "Release";
discordField.Value = string.Format("```{0}```", message.Album.Release.Title); discordField.Value = string.Format("```{0}```", message.RemoteAlbum.Release.Title);
break; break;
case DiscordGrabFieldType.Links: case DiscordGrabFieldType.Links:
discordField.Name = "Links"; discordField.Name = "Links";

View file

@ -8,7 +8,7 @@ namespace NzbDrone.Core.Notifications
{ {
public string Message { get; set; } public string Message { get; set; }
public Artist Artist { get; set; } public Artist Artist { get; set; }
public RemoteAlbum Album { get; set; } public RemoteAlbum RemoteAlbum { get; set; }
public QualityModel Quality { get; set; } public QualityModel Quality { get; set; }
public string DownloadClientType { get; set; } public string DownloadClientType { get; set; }
public string DownloadClientName { get; set; } public string DownloadClientName { get; set; }

View file

@ -125,7 +125,7 @@ namespace NzbDrone.Core.Notifications
Message = GetMessage(message.Album.Artist, message.Album.Albums, message.Album.ParsedAlbumInfo.Quality), Message = GetMessage(message.Album.Artist, message.Album.Albums, message.Album.ParsedAlbumInfo.Quality),
Artist = message.Album.Artist, Artist = message.Album.Artist,
Quality = message.Album.ParsedAlbumInfo.Quality, Quality = message.Album.ParsedAlbumInfo.Quality,
Album = message.Album, RemoteAlbum = message.Album,
DownloadClientName = message.DownloadClientName, DownloadClientName = message.DownloadClientName,
DownloadClientType = message.DownloadClient, DownloadClientType = message.DownloadClient,
DownloadId = message.DownloadId DownloadId = message.DownloadId

View file

@ -3,6 +3,7 @@ using System.Linq;
using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration;
using NzbDrone.Core.MediaFiles; using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Music; using NzbDrone.Core.Music;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.ThingiProvider;
namespace NzbDrone.Core.Notifications.Webhook namespace NzbDrone.Core.Notifications.Webhook
@ -20,7 +21,7 @@ namespace NzbDrone.Core.Notifications.Webhook
public WebhookGrabPayload BuildOnGrabPayload(GrabMessage message) public WebhookGrabPayload BuildOnGrabPayload(GrabMessage message)
{ {
var remoteAlbum = message.Album; var remoteAlbum = message.RemoteAlbum;
var quality = message.Quality; var quality = message.Quality;
return new WebhookGrabPayload return new WebhookGrabPayload
@ -28,6 +29,7 @@ namespace NzbDrone.Core.Notifications.Webhook
EventType = WebhookEventType.Grab, EventType = WebhookEventType.Grab,
InstanceName = _configFileProvider.InstanceName, InstanceName = _configFileProvider.InstanceName,
Artist = new WebhookArtist(message.Artist), Artist = new WebhookArtist(message.Artist),
Albums = remoteAlbum.Albums.Select(x => new WebhookAlbum(x)).ToList(),
Release = new WebhookRelease(quality, remoteAlbum), Release = new WebhookRelease(quality, remoteAlbum),
DownloadClient = message.DownloadClientName, DownloadClient = message.DownloadClientName,
DownloadClientType = message.DownloadClientType, DownloadClientType = message.DownloadClientType,
@ -44,6 +46,7 @@ namespace NzbDrone.Core.Notifications.Webhook
EventType = WebhookEventType.Download, EventType = WebhookEventType.Download,
InstanceName = _configFileProvider.InstanceName, InstanceName = _configFileProvider.InstanceName,
Artist = new WebhookArtist(message.Artist), Artist = new WebhookArtist(message.Artist),
Album = new WebhookAlbum(message.Album),
Tracks = trackFiles.SelectMany(x => x.Tracks.Value.Select(y => new WebhookTrack(y))).ToList(), Tracks = trackFiles.SelectMany(x => x.Tracks.Value.Select(y => new WebhookTrack(y))).ToList(),
TrackFiles = trackFiles.ConvertAll(x => new WebhookTrackFile(x)), TrackFiles = trackFiles.ConvertAll(x => new WebhookTrackFile(x)),
IsUpgrade = message.OldFiles.Any(), IsUpgrade = message.OldFiles.Any(),

View file

@ -5,6 +5,7 @@ namespace NzbDrone.Core.Notifications.Webhook
public class WebhookImportPayload : WebhookPayload public class WebhookImportPayload : WebhookPayload
{ {
public WebhookArtist Artist { get; set; } public WebhookArtist Artist { get; set; }
public WebhookAlbum Album { get; set; }
public List<WebhookTrack> Tracks { get; set; } public List<WebhookTrack> Tracks { get; set; }
public List<WebhookTrackFile> TrackFiles { get; set; } public List<WebhookTrackFile> TrackFiles { get; set; }
public List<WebhookTrackFile> DeletedFiles { get; set; } public List<WebhookTrackFile> DeletedFiles { get; set; }