@ -214,7 +214,7 @@ namespace NzbDrone.Core.Notifications.Discord
break ;
case DiscordImportFieldType . Release :
discordField . Name = "Release" ;
discordField . Value = message . EpisodeFile . SceneName ;
discordField . Value = string . Format ( "```{0}```" , message . EpisodeFile . SceneName ) ;
break ;
case DiscordImportFieldType . Links :
discordField . Name = "Links" ;
@ -252,16 +252,29 @@ namespace NzbDrone.Core.Notifications.Discord
{
var series = deleteMessage . Series ;
var episodes = deleteMessage . EpisodeFile . Episodes ;
var deletedFile = deleteMessage . EpisodeFile . Path ;
var reason = deleteMessage . Reason ;
var attachments = new List < Embed >
{
new Embed
{
Title = GetTitle ( series , episodes )
}
} ;
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 = 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 ) ;
}
@ -269,17 +282,37 @@ namespace NzbDrone.Core.Notifications.Discord
public override void OnSeriesAdd ( SeriesAddMessage message )
{
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 >
{
new Embed
{
Title = series . Title ,
Description = message . Message
}
} ;
if ( Settings . ImportFields . Contains ( ( int ) DiscordImportFieldType . Poster ) )
{
embed . Thumbnail = new DiscordImage
{
Url = series . Images . FirstOrDefault ( x = > x . CoverType = = MediaCoverTypes . Poster ) ? . RemoteUrl
} ;
}
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 ) ;
}
@ -288,97 +321,109 @@ namespace NzbDrone.Core.Notifications.Discord
{
var series = deleteMessage . Series ;
var attachments = new List < Embed >
{
new Embed
{
Title = series . Title ,
Description = deleteMessage . DeletedFilesMessage
}
} ;
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 = 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 ) ;
}
public override void OnHealthIssue ( HealthCheck . HealthCheck healthCheck )
{
var attachments = new List < 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"
} ,
Title = healthCheck . Source . Name ,
Description = healthCheck . Message ,
Timestamp = DateTime . UtcNow . ToString ( "yyyy-MM-ddTHH:mm:ss.fffZ" ) ,
Color = healthCheck . Type = = HealthCheck . HealthCheckResult . Warning ? ( int ) DiscordColors . Warning : ( int ) DiscordColors . Danger
}
} ;
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"
} ,
Title = healthCheck . Source . Name ,
Description = healthCheck . Message ,
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 ) ;
}
public override void OnHealthRestored ( HealthCheck . HealthCheck previousCheck )
{
var attachments = new List < 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"
} ,
Title = "Health Issue Resolved: " + previousCheck . Source . Name ,
Description = $"The following issue is now resolved: {previousCheck.Message}" ,
Timestamp = DateTime . UtcNow . ToString ( "yyyy-MM-ddTHH:mm:ss.fffZ" ) ,
Color = ( int ) DiscordColors . Success
}
} ;
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"
} ,
Title = "Health Issue Resolved: " + previousCheck . Source . Name ,
Description = $"The following issue is now resolved: {previousCheck.Message}" ,
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 ) ;
}
public override void OnApplicationUpdate ( ApplicationUpdateMessage updateMessage )
{
var attachments = new List < 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"
} ,
Title = APPLICATION_UPDATE_TITLE ,
Timestamp = DateTime . UtcNow . ToString ( "yyyy-MM-ddTHH:mm:ss.fffZ" ) ,
Color = ( int ) DiscordColors . Standard ,
Fields = new List < DiscordField > ( )
{
new DiscordField ( )
{
Name = "Previous Version" ,
Value = updateMessage . PreviousVersion . ToString ( )
} ,
new DiscordField ( )
{
Name = "New Version" ,
Value = updateMessage . NewVersion . ToString ( )
}
} ,
}
} ;
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"
} ,
Title = APPLICATION_UPDATE_TITLE ,
Timestamp = DateTime . UtcNow . ToString ( "yyyy-MM-ddTHH:mm:ss.fffZ" ) ,
Color = ( int ) DiscordColors . Standard ,
Fields = new List < DiscordField > ( )
{
new DiscordField ( )
{
Name = "Previous Version" ,
Value = updateMessage . PreviousVersion . ToString ( )
} ,
new DiscordField ( )
{
Name = "New Version" ,
Value = updateMessage . NewVersion . ToString ( )
}
} ,
} ;
var payload = CreatePayload ( null , attachments ) ;
var payload = CreatePayload ( null , new List < Embed > { embed } ) ;
_proxy . SendPayload ( payload , Settings ) ;
}