New: Add Changes to UpdatedEvent Notifications

This commit is contained in:
Qstick 2022-06-03 23:44:46 -05:00
parent fcebfe6759
commit 1b4a6b1309
9 changed files with 69 additions and 5 deletions

View File

@ -1,4 +1,5 @@
using System; using System;
using NzbDrone.Core.Update;
namespace NzbDrone.Core.Notifications namespace NzbDrone.Core.Notifications
{ {
@ -7,6 +8,7 @@ namespace NzbDrone.Core.Notifications
public string Message { get; set; } public string Message { get; set; }
public Version PreviousVersion { get; set; } public Version PreviousVersion { get; set; }
public Version NewVersion { get; set; } public Version NewVersion { get; set; }
public UpdateChanges Changes { get; set; }
public override string ToString() public override string ToString()
{ {

View File

@ -212,6 +212,16 @@ namespace NzbDrone.Core.Notifications.CustomScript
environmentVariables.Add("Radarr_Update_NewVersion", updateMessage.NewVersion.ToString()); environmentVariables.Add("Radarr_Update_NewVersion", updateMessage.NewVersion.ToString());
environmentVariables.Add("Radarr_Update_PreviousVersion", updateMessage.PreviousVersion.ToString()); environmentVariables.Add("Radarr_Update_PreviousVersion", updateMessage.PreviousVersion.ToString());
if (updateMessage.Changes.New.Any())
{
environmentVariables.Add("Radarr_Update_NewChanges", string.Join("|", updateMessage.Changes.New.Select(e => e)));
}
if (updateMessage.Changes.Fixed.Any())
{
environmentVariables.Add("Radarr_Update_FixedChanges", string.Join("|", updateMessage.Changes.Fixed.Select(e => e)));
}
ExecuteScript(environmentVariables); ExecuteScript(environmentVariables);
} }

View File

@ -317,6 +317,16 @@ namespace NzbDrone.Core.Notifications.Discord
{ {
Name = "New Version", Name = "New Version",
Value = updateMessage.NewVersion.ToString() Value = updateMessage.NewVersion.ToString()
},
new DiscordField()
{
Name = "New",
Value = string.Format("```{0}```", string.Join(Environment.NewLine, updateMessage.Changes.New))
},
new DiscordField()
{
Name = "Fixed",
Value = string.Format("```{0}```", string.Join(Environment.NewLine, updateMessage.Changes.Fixed))
} }
}, },
} }

View File

@ -176,6 +176,16 @@ namespace NzbDrone.Core.Notifications.Notifiarr
variables.Add("Radarr_Update_NewVersion", updateMessage.NewVersion.ToString()); variables.Add("Radarr_Update_NewVersion", updateMessage.NewVersion.ToString());
variables.Add("Radarr_Update_PreviousVersion", updateMessage.PreviousVersion.ToString()); variables.Add("Radarr_Update_PreviousVersion", updateMessage.PreviousVersion.ToString());
if (updateMessage.Changes.New.Any())
{
variables.Add("Radarr_Update_NewChanges", string.Join("|", updateMessage.Changes.New.Select(e => e)));
}
if (updateMessage.Changes.Fixed.Any())
{
variables.Add("Radarr_Update_FixedChanges", string.Join("|", updateMessage.Changes.Fixed.Select(e => e)));
}
_proxy.SendNotification(variables, Settings); _proxy.SendNotification(variables, Settings);
} }

View File

@ -198,6 +198,7 @@ namespace NzbDrone.Core.Notifications
updateMessage.Message = $"Radarr updated from {message.PreviousVerison.ToString()} to {message.NewVersion.ToString()}"; updateMessage.Message = $"Radarr updated from {message.PreviousVerison.ToString()} to {message.NewVersion.ToString()}";
updateMessage.PreviousVersion = message.PreviousVerison; updateMessage.PreviousVersion = message.PreviousVerison;
updateMessage.NewVersion = message.NewVersion; updateMessage.NewVersion = message.NewVersion;
updateMessage.Changes = message.Changes;
foreach (var notification in _notificationFactory.OnApplicationUpdateEnabled()) foreach (var notification in _notificationFactory.OnApplicationUpdateEnabled())
{ {

View File

@ -136,7 +136,9 @@ namespace NzbDrone.Core.Notifications.Webhook
EventType = WebhookEventType.ApplicationUpdate, EventType = WebhookEventType.ApplicationUpdate,
Message = updateMessage.Message, Message = updateMessage.Message,
PreviousVersion = updateMessage.PreviousVersion.ToString(), PreviousVersion = updateMessage.PreviousVersion.ToString(),
NewVersion = updateMessage.NewVersion.ToString() NewVersion = updateMessage.NewVersion.ToString(),
NewChanges = updateMessage.Changes.New,
FixedChanges = updateMessage.Changes.Fixed
}; };
_proxy.SendWebhook(payload, Settings); _proxy.SendWebhook(payload, Settings);

View File

@ -1,3 +1,5 @@
using System.Collections.Generic;
namespace NzbDrone.Core.Notifications.Webhook namespace NzbDrone.Core.Notifications.Webhook
{ {
public class WebhookApplicationUpdatePayload : WebhookPayload public class WebhookApplicationUpdatePayload : WebhookPayload
@ -5,5 +7,7 @@ namespace NzbDrone.Core.Notifications.Webhook
public string Message { get; set; } public string Message { get; set; }
public string PreviousVersion { get; set; } public string PreviousVersion { get; set; }
public string NewVersion { get; set; } public string NewVersion { get; set; }
public List<string> NewChanges { get; set; }
public List<string> FixedChanges { get; set; }
} }
} }

View File

@ -7,11 +7,13 @@ namespace NzbDrone.Core.Update.History.Events
{ {
public Version PreviousVerison { get; set; } public Version PreviousVerison { get; set; }
public Version NewVersion { get; set; } public Version NewVersion { get; set; }
public UpdateChanges Changes { get; set; }
public UpdateInstalledEvent(Version previousVersion, Version newVersion) public UpdateInstalledEvent(Version previousVersion, Version newVersion, UpdateChanges changes)
{ {
PreviousVerison = previousVersion; PreviousVerison = previousVersion;
NewVersion = newVersion; NewVersion = newVersion;
Changes = changes;
} }
} }
} }

View File

@ -1,7 +1,9 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using NLog; using NLog;
using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Lifecycle; using NzbDrone.Core.Lifecycle;
using NzbDrone.Core.Messaging.Events; using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Update.History.Events; using NzbDrone.Core.Update.History.Events;
@ -17,13 +19,21 @@ namespace NzbDrone.Core.Update.History
public class UpdateHistoryService : IUpdateHistoryService, IHandle<ApplicationStartedEvent>, IHandleAsync<ApplicationStartedEvent> public class UpdateHistoryService : IUpdateHistoryService, IHandle<ApplicationStartedEvent>, IHandleAsync<ApplicationStartedEvent>
{ {
private readonly IUpdateHistoryRepository _repository; private readonly IUpdateHistoryRepository _repository;
private readonly IConfigFileProvider _configFileProvider;
private readonly IUpdatePackageProvider _updatePackageProvider;
private readonly IEventAggregator _eventAggregator; private readonly IEventAggregator _eventAggregator;
private readonly Logger _logger; private readonly Logger _logger;
private Version _prevVersion; private Version _prevVersion;
public UpdateHistoryService(IUpdateHistoryRepository repository, IEventAggregator eventAggregator, Logger logger) public UpdateHistoryService(IUpdateHistoryRepository repository,
IConfigFileProvider configFileProvider,
IUpdatePackageProvider updatePackageProvider,
IEventAggregator eventAggregator,
Logger logger)
{ {
_repository = repository; _repository = repository;
_configFileProvider = configFileProvider;
_updatePackageProvider = updatePackageProvider;
_eventAggregator = eventAggregator; _eventAggregator = eventAggregator;
_logger = logger; _logger = logger;
} }
@ -93,7 +103,20 @@ namespace NzbDrone.Core.Update.History
{ {
if (_prevVersion != null) if (_prevVersion != null)
{ {
_eventAggregator.PublishEvent(new UpdateInstalledEvent(_prevVersion, BuildInfo.Version)); var branch = _configFileProvider.Branch;
var version = BuildInfo.Version;
var packageChanges = _updatePackageProvider.GetRecentUpdates(branch, version, _prevVersion)
.Select(u => u.Changes);
var changes = new UpdateChanges();
foreach (var change in packageChanges)
{
changes.New = change.New.Union(change.New).ToList();
changes.Fixed = change.Fixed.Union(change.Fixed).ToList();
}
_eventAggregator.PublishEvent(new UpdateInstalledEvent(_prevVersion, BuildInfo.Version, changes));
} }
} }
} }