parent
14bea16aef
commit
1a4403e0ab
|
@ -214,7 +214,7 @@ namespace NzbDrone.Core.Notifications.Discord
|
||||||
break;
|
break;
|
||||||
case DiscordImportFieldType.Release:
|
case DiscordImportFieldType.Release:
|
||||||
discordField.Name = "Release";
|
discordField.Name = "Release";
|
||||||
discordField.Value = message.EpisodeFile.SceneName;
|
discordField.Value = string.Format("```{0}```", message.EpisodeFile.SceneName);
|
||||||
break;
|
break;
|
||||||
case DiscordImportFieldType.Links:
|
case DiscordImportFieldType.Links:
|
||||||
discordField.Name = "Links";
|
discordField.Name = "Links";
|
||||||
|
@ -252,16 +252,29 @@ namespace NzbDrone.Core.Notifications.Discord
|
||||||
{
|
{
|
||||||
var series = deleteMessage.Series;
|
var series = deleteMessage.Series;
|
||||||
var episodes = deleteMessage.EpisodeFile.Episodes;
|
var episodes = deleteMessage.EpisodeFile.Episodes;
|
||||||
|
var deletedFile = deleteMessage.EpisodeFile.Path;
|
||||||
|
var reason = deleteMessage.Reason;
|
||||||
|
|
||||||
var attachments = new List<Embed>
|
var embed = new Embed
|
||||||
{
|
{
|
||||||
new Embed
|
Author = new DiscordAuthor
|
||||||
{
|
{
|
||||||
Title = GetTitle(series, episodes)
|
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
||||||
}
|
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
||||||
};
|
},
|
||||||
|
Url = $"http://thetvdb.com/?tab=series&id={series.TvdbId}",
|
||||||
|
Title = GetTitle(series, episodes),
|
||||||
|
Description = "Episode Deleted",
|
||||||
|
Color = (int)DiscordColors.Danger,
|
||||||
|
Fields = new List<DiscordField>
|
||||||
|
{
|
||||||
|
new DiscordField { Name = "Reason", Value = reason.ToString() },
|
||||||
|
new DiscordField { Name = "File name", Value = string.Format("```{0}```", deletedFile) }
|
||||||
|
},
|
||||||
|
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
|
||||||
|
};
|
||||||
|
|
||||||
var payload = CreatePayload("Episode Deleted", attachments);
|
var payload = CreatePayload(null, new List<Embed> { embed });
|
||||||
|
|
||||||
_proxy.SendPayload(payload, Settings);
|
_proxy.SendPayload(payload, Settings);
|
||||||
}
|
}
|
||||||
|
@ -269,17 +282,37 @@ namespace NzbDrone.Core.Notifications.Discord
|
||||||
public override void OnSeriesAdd(SeriesAddMessage message)
|
public override void OnSeriesAdd(SeriesAddMessage message)
|
||||||
{
|
{
|
||||||
var series = message.Series;
|
var series = message.Series;
|
||||||
|
var embed = new Embed
|
||||||
|
{
|
||||||
|
Author = new DiscordAuthor
|
||||||
|
{
|
||||||
|
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
||||||
|
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
||||||
|
},
|
||||||
|
Url = $"http://thetvdb.com/?tab=series&id={series.TvdbId}",
|
||||||
|
Title = series.Title,
|
||||||
|
Description = "Series Added",
|
||||||
|
Color = (int)DiscordColors.Success,
|
||||||
|
Fields = new List<DiscordField> { new DiscordField { Name = "Links", Value = GetLinksString(series) } }
|
||||||
|
};
|
||||||
|
|
||||||
var attachments = new List<Embed>
|
if (Settings.ImportFields.Contains((int)DiscordImportFieldType.Poster))
|
||||||
{
|
{
|
||||||
new Embed
|
embed.Thumbnail = new DiscordImage
|
||||||
{
|
{
|
||||||
Title = series.Title,
|
Url = series.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Poster)?.RemoteUrl
|
||||||
Description = message.Message
|
};
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
var payload = CreatePayload("Series Added", attachments);
|
if (Settings.ImportFields.Contains((int)DiscordImportFieldType.Fanart))
|
||||||
|
{
|
||||||
|
embed.Image = new DiscordImage
|
||||||
|
{
|
||||||
|
Url = series.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Fanart)?.RemoteUrl
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var payload = CreatePayload(null, new List<Embed> { embed });
|
||||||
|
|
||||||
_proxy.SendPayload(payload, Settings);
|
_proxy.SendPayload(payload, Settings);
|
||||||
}
|
}
|
||||||
|
@ -288,97 +321,109 @@ namespace NzbDrone.Core.Notifications.Discord
|
||||||
{
|
{
|
||||||
var series = deleteMessage.Series;
|
var series = deleteMessage.Series;
|
||||||
|
|
||||||
var attachments = new List<Embed>
|
var embed = new Embed
|
||||||
{
|
{
|
||||||
new Embed
|
Author = new DiscordAuthor
|
||||||
{
|
{
|
||||||
Title = series.Title,
|
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
||||||
Description = deleteMessage.DeletedFilesMessage
|
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
||||||
}
|
},
|
||||||
};
|
Url = $"http://thetvdb.com/?tab=series&id={series.TvdbId}",
|
||||||
|
Title = series.Title,
|
||||||
|
Description = deleteMessage.DeletedFilesMessage,
|
||||||
|
Color = (int)DiscordColors.Danger,
|
||||||
|
Fields = new List<DiscordField> { new DiscordField { Name = "Links", Value = GetLinksString(series) } }
|
||||||
|
};
|
||||||
|
|
||||||
var payload = CreatePayload("Series Deleted", attachments);
|
if (Settings.ImportFields.Contains((int)DiscordImportFieldType.Poster))
|
||||||
|
{
|
||||||
|
embed.Thumbnail = new DiscordImage
|
||||||
|
{
|
||||||
|
Url = series.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Poster)?.RemoteUrl
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Settings.ImportFields.Contains((int)DiscordImportFieldType.Fanart))
|
||||||
|
{
|
||||||
|
embed.Image = new DiscordImage
|
||||||
|
{
|
||||||
|
Url = series.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Fanart)?.RemoteUrl
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var payload = CreatePayload(null, new List<Embed> { embed });
|
||||||
|
|
||||||
_proxy.SendPayload(payload, Settings);
|
_proxy.SendPayload(payload, Settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnHealthIssue(HealthCheck.HealthCheck healthCheck)
|
public override void OnHealthIssue(HealthCheck.HealthCheck healthCheck)
|
||||||
{
|
{
|
||||||
var attachments = new List<Embed>
|
var embed = new Embed
|
||||||
{
|
{
|
||||||
new Embed
|
Author = new DiscordAuthor
|
||||||
{
|
{
|
||||||
Author = new DiscordAuthor
|
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
||||||
{
|
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
||||||
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
},
|
||||||
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
Title = healthCheck.Source.Name,
|
||||||
},
|
Description = healthCheck.Message,
|
||||||
Title = healthCheck.Source.Name,
|
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
|
||||||
Description = healthCheck.Message,
|
Color = healthCheck.Type == HealthCheck.HealthCheckResult.Warning ? (int)DiscordColors.Warning : (int)DiscordColors.Danger
|
||||||
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
|
};
|
||||||
Color = healthCheck.Type == HealthCheck.HealthCheckResult.Warning ? (int)DiscordColors.Warning : (int)DiscordColors.Danger
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var payload = CreatePayload(null, attachments);
|
var payload = CreatePayload(null, new List<Embed> { embed });
|
||||||
|
|
||||||
_proxy.SendPayload(payload, Settings);
|
_proxy.SendPayload(payload, Settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnHealthRestored(HealthCheck.HealthCheck previousCheck)
|
public override void OnHealthRestored(HealthCheck.HealthCheck previousCheck)
|
||||||
{
|
{
|
||||||
var attachments = new List<Embed>
|
var embed = new Embed
|
||||||
{
|
{
|
||||||
new Embed
|
Author = new DiscordAuthor
|
||||||
{
|
{
|
||||||
Author = new DiscordAuthor
|
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
||||||
{
|
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
||||||
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
},
|
||||||
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
Title = "Health Issue Resolved: " + previousCheck.Source.Name,
|
||||||
},
|
Description = $"The following issue is now resolved: {previousCheck.Message}",
|
||||||
Title = "Health Issue Resolved: " + previousCheck.Source.Name,
|
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
|
||||||
Description = $"The following issue is now resolved: {previousCheck.Message}",
|
Color = (int)DiscordColors.Success
|
||||||
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
|
};
|
||||||
Color = (int)DiscordColors.Success
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var payload = CreatePayload(null, attachments);
|
var payload = CreatePayload(null, new List<Embed> { embed });
|
||||||
|
|
||||||
_proxy.SendPayload(payload, Settings);
|
_proxy.SendPayload(payload, Settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnApplicationUpdate(ApplicationUpdateMessage updateMessage)
|
public override void OnApplicationUpdate(ApplicationUpdateMessage updateMessage)
|
||||||
{
|
{
|
||||||
var attachments = new List<Embed>
|
var embed = new Embed
|
||||||
{
|
{
|
||||||
new Embed
|
Author = new DiscordAuthor
|
||||||
{
|
{
|
||||||
Author = new DiscordAuthor
|
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
||||||
{
|
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
||||||
Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author,
|
},
|
||||||
IconUrl = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
|
Title = APPLICATION_UPDATE_TITLE,
|
||||||
},
|
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
|
||||||
Title = APPLICATION_UPDATE_TITLE,
|
Color = (int)DiscordColors.Standard,
|
||||||
Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
|
Fields = new List<DiscordField>()
|
||||||
Color = (int)DiscordColors.Standard,
|
{
|
||||||
Fields = new List<DiscordField>()
|
new DiscordField()
|
||||||
{
|
{
|
||||||
new DiscordField()
|
Name = "Previous Version",
|
||||||
{
|
Value = updateMessage.PreviousVersion.ToString()
|
||||||
Name = "Previous Version",
|
},
|
||||||
Value = updateMessage.PreviousVersion.ToString()
|
new DiscordField()
|
||||||
},
|
{
|
||||||
new DiscordField()
|
Name = "New Version",
|
||||||
{
|
Value = updateMessage.NewVersion.ToString()
|
||||||
Name = "New Version",
|
}
|
||||||
Value = updateMessage.NewVersion.ToString()
|
},
|
||||||
}
|
};
|
||||||
},
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var payload = CreatePayload(null, attachments);
|
var payload = CreatePayload(null, new List<Embed> { embed });
|
||||||
|
|
||||||
_proxy.SendPayload(payload, Settings);
|
_proxy.SendPayload(payload, Settings);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ namespace NzbDrone.Core.Notifications.Discord
|
||||||
[FieldDefinition(2, Label = "Avatar", HelpText = "Change the avatar that is used for messages from this integration", Type = FieldType.Textbox)]
|
[FieldDefinition(2, Label = "Avatar", HelpText = "Change the avatar that is used for messages from this integration", Type = FieldType.Textbox)]
|
||||||
public string Avatar { get; set; }
|
public string Avatar { get; set; }
|
||||||
|
|
||||||
[FieldDefinition(3, Label = "Host", Advanced = true, HelpText = "Override the Host that shows for this notification, Blank is machine name", Type = FieldType.Textbox)]
|
[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; }
|
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.TagSelect)]
|
||||||
|
|
Loading…
Reference in New Issue