public override void OnReleaseImport(AlbumDownloadMessage message) { const string header = "Gamearr - Downloaded"; Notify(Settings, header, message.Message); Update(); }
public override void OnReleaseImport(AlbumDownloadMessage message) { var artist = message.Artist; var album = message.Album; var release = message.Release; var variables = new StringDictionary(); variables.Add("Lidarr_EventType", "Download"); variables.Add("Lidarr_Artist_Id", artist.Id.ToString()); variables.Add("Lidarr_Artist_Name", artist.Metadata.Value.Name); variables.Add("Lidarr_Artist_Path", artist.Path); variables.Add("Lidarr_Artist_MBId", artist.Metadata.Value.ForeignArtistId); variables.Add("Lidarr_Artist_Type", artist.Metadata.Value.Type); variables.Add("Lidarr_Album_Id", album.Id.ToString()); variables.Add("Lidarr_Album_Title", album.Title); variables.Add("Lidarr_Album_MBId", album.ForeignAlbumId); variables.Add("Lidarr_AlbumRelease_MBId", release.ForeignReleaseId); variables.Add("Lidarr_Album_ReleaseDate", album.ReleaseDate.ToString()); variables.Add("Lidarr_Download_Client", message.DownloadClient ?? string.Empty); variables.Add("Lidarr_Download_Id", message.DownloadId ?? string.Empty); if (message.TrackFiles.Any()) { variables.Add("Lidarr_AddedTrackPaths", string.Join("|", message.TrackFiles.Select(e => e.Path))); } if (message.OldFiles.Any()) { variables.Add("Lidarr_DeletedPaths", string.Join("|", message.OldFiles.Select(e => e.Path))); } _proxy.SendNotification(variables, Settings); }
public override void OnReleaseImport(AlbumDownloadMessage message) { const string header = "Gamearr - Downloaded"; Notify(Settings, header, message.Message); UpdateAndClean(message.Artist, message.OldFiles.Any()); }
public override void OnReleaseImport(AlbumDownloadMessage message) { if (Settings.Notify) { _mediaBrowserService.Notify(Settings, ALBUM_DOWNLOADED_TITLE_BRANDED, message.Message); } if (Settings.UpdateLibrary) { _mediaBrowserService.Update(Settings, message.Artist); } }
public override void OnImportFailure(AlbumDownloadMessage message) { var attachments = new List <Attachment> { new Attachment { Fallback = message.Message, Text = message.Message, Color = "warning" } }; var payload = CreatePayload($"Import Failed: {message.Message}", attachments); _proxy.SendPayload(payload, Settings); }
public override void OnReleaseImport(AlbumDownloadMessage message) { var attachments = new List <Attachment> { new Attachment { Fallback = message.Message, Title = message.Artist.Name, Text = message.Message, Color = "good" } }; var payload = CreatePayload($"Imported: {message.Message}", attachments); _proxy.SendPayload(payload, Settings); }
public override void OnImportFailure(AlbumDownloadMessage message) { var attachments = new List <Embed> { new Embed { Description = message.Message, Title = message.Album.Title, Text = message.Message, Color = (int)DiscordColors.Warning } }; var payload = CreatePayload($"Import Failed: {message.Message}", attachments); _proxy.SendPayload(payload, Settings); }
public override void OnReleaseImport(AlbumDownloadMessage message) { var attachments = new List <Embed> { new Embed { Description = message.Message, Title = message.Artist.Name, Text = message.Message, Color = (int)DiscordColors.Success } }; var payload = CreatePayload($"Imported: {message.Message}", attachments); _proxy.SendPayload(payload, Settings); }
public override void OnReleaseImport(AlbumDownloadMessage message) { if (Settings.UpdateLibrary) { foreach (var oldFile in message.OldFiles) { var fullPath = oldFile.Path; _indexerProxy.DeleteFile(fullPath); } foreach (var newFile in message.TrackFiles) { var fullPath = newFile.Path; _indexerProxy.AddFile(fullPath); } } }
public override void OnImportFailure(AlbumDownloadMessage message) { var attachments = new List <Embed> { new Embed { Author = new DiscordAuthor { Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author, IconUrl = "https://raw.githubusercontent.com/lidarr/Lidarr/develop/Logo/256.png" }, Description = message.Message, Title = message.Album?.Title ?? message.Message, Text = message.Message, Color = (int)DiscordColors.Warning } }; var payload = CreatePayload($"Import Failed: {message.Message}", attachments); _proxy.SendPayload(payload, Settings); }
public void SetUp() { _artist = new Artist() { Path = rootPath, }; _upgrade = new AlbumDownloadMessage() { Artist = _artist, TrackFiles = new List <TrackFile> { new TrackFile { Path = Path.Combine(rootPath, "file1.S01E01E02.mkv") } }, OldFiles = new List <TrackFile> { new TrackFile { Path = Path.Combine(rootPath, "file1.S01E01.mkv") }, new TrackFile { Path = Path.Combine(rootPath, "file1.S01E02.mkv") } } }; Subject.Definition = new NotificationDefinition { Settings = new SynologyIndexerSettings { UpdateLibrary = true } }; }
public override void OnReleaseImport(AlbumDownloadMessage message) { var trackFiles = message.TrackFiles; var payload = new WebhookImportPayload { EventType = "Download", Artist = new WebhookArtist(message.Artist), Tracks = trackFiles.SelectMany(x => x.Tracks.Value.Select(y => new WebhookTrack(y) { // TODO: Stop passing these parameters inside an episode v3 Quality = x.Quality.Quality.Name, QualityVersion = x.Quality.Revision.Version, ReleaseGroup = x.ReleaseGroup })).ToList(), TrackFiles = trackFiles.ConvertAll(x => new WebhookTrackFile(x)), IsUpgrade = message.OldFiles.Any() }; _proxy.SendWebhook(payload, Settings); }
public void Setup() { var artist = Builder <Artist> .CreateNew() .Build(); var trackFile = Builder <TrackFile> .CreateNew() .Build(); _albumDownloadMessage = Builder <AlbumDownloadMessage> .CreateNew() .With(d => d.Artist = artist) .With(d => d.TrackFiles = new List <TrackFile> { trackFile }) .With(d => d.OldFiles = new List <TrackFile>()) .Build(); Subject.Definition = new NotificationDefinition(); Subject.Definition.Settings = new XbmcSettings { UpdateLibrary = true }; }
public override void OnReleaseImport(AlbumDownloadMessage message) { _growlService.SendNotification(ALBUM_DOWNLOADED_TITLE, message.Message, "ALBUMDOWNLOAD", Settings.Host, Settings.Port, Settings.Password); }
public override void OnReleaseImport(AlbumDownloadMessage message) { var body = $"{message.Message} Downloaded and sorted."; _emailService.SendEmail(Settings, ALBUM_DOWNLOADED_TITLE_BRANDED, body); }
public override void OnImportFailure(AlbumDownloadMessage message) { _proxy.SendNotification(IMPORT_FAILURE_TITLE, message.Message, Settings); }
public override void OnReleaseImport(AlbumDownloadMessage message) { _proxy.SendNotification(ALBUM_DOWNLOADED_TITLE, message.Message, Settings); }
public override void OnImportFailure(AlbumDownloadMessage message) { _emailService.SendEmail(Settings, IMPORT_FAILURE_TITLE_BRANDED, message.Message); }
public override void OnReleaseImport(AlbumDownloadMessage message) { Notify(ALBUM_DOWNLOADED_TITLE_BRANDED, message.Message); }
public override void OnReleaseImport(AlbumDownloadMessage message) { _prowlService.SendNotification(ALBUM_DOWNLOADED_TITLE, message.Message, Settings.ApiKey, (NotificationPriority)Settings.Priority); }
public override void OnReleaseImport(AlbumDownloadMessage message) { TestLogger.Info("OnAlbumDownload was called"); }
public override void OnImportFailure(AlbumDownloadMessage message) { TestLogger.Info("OnImportFailure was called"); }
public override void OnReleaseImport(AlbumDownloadMessage message) { UpdateIfEnabled(message.Artist); }
public override void OnImportFailure(AlbumDownloadMessage message) { _twitterService.SendNotification($"Import Failed: {message.Message}", Settings); }
public override void OnReleaseImport(AlbumDownloadMessage message) { _plexClientService.Notify(Settings, ALBUM_DOWNLOADED_TITLE_BRANDED, message.Message); }
public override void OnImportFailure(AlbumDownloadMessage message) { _growlService.SendNotification(IMPORT_FAILURE_TITLE, message.Message, "IMPORTFAILURE", Settings.Host, Settings.Port, Settings.Password); }
public override void OnReleaseImport(AlbumDownloadMessage message) { var artist = message.Artist; var artistMetadata = message.Artist.Metadata.Value; var album = message.Album; var episodes = message.TrackFiles; var isUpgrade = message.OldFiles.Count > 0; var embed = new Embed { Author = new DiscordAuthor { Name = Settings.Author.IsNullOrWhiteSpace() ? Environment.MachineName : Settings.Author, IconUrl = "https://raw.githubusercontent.com/lidarr/Lidarr/develop/Logo/256.png" }, Url = $"https://musicbrainz.org/artist/{artist.ForeignArtistId}", Description = isUpgrade ? "Album Upgraded" : "Album Imported", Title = GetTitle(artist, new List <Album> { album }), Color = isUpgrade ? (int)DiscordColors.Upgrade : (int)DiscordColors.Success, Fields = new List <DiscordField>(), Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ") }; if (Settings.ImportFields.Contains((int)DiscordImportFieldType.Poster)) { embed.Thumbnail = new DiscordImage { Url = album.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Cover)?.Url }; } if (Settings.ImportFields.Contains((int)DiscordImportFieldType.Fanart)) { embed.Image = new DiscordImage { Url = artistMetadata.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Fanart)?.Url }; } foreach (var field in Settings.ImportFields) { var discordField = new DiscordField(); switch ((DiscordImportFieldType)field) { case DiscordImportFieldType.Overview: var overview = album.Overview ?? ""; discordField.Name = "Overview"; discordField.Value = overview.Length <= 300 ? overview : overview.Substring(0, 300) + "..."; break; case DiscordImportFieldType.Rating: discordField.Name = "Rating"; discordField.Value = album.Ratings.Value.ToString(); break; case DiscordImportFieldType.Genres: discordField.Name = "Genres"; discordField.Value = album.Genres.Take(5).Join(", "); break; case DiscordImportFieldType.Quality: discordField.Name = "Quality"; discordField.Inline = true; discordField.Value = message.TrackFiles.First().Quality.Quality.Name; break; case DiscordImportFieldType.Group: discordField.Name = "Group"; discordField.Value = message.TrackFiles.First().ReleaseGroup; break; case DiscordImportFieldType.Size: discordField.Name = "Size"; discordField.Value = BytesToString(message.TrackFiles.Sum(x => x.Size)); discordField.Inline = true; break; case DiscordImportFieldType.Release: discordField.Name = "Release"; discordField.Value = message.TrackFiles.First().SceneName; break; case DiscordImportFieldType.Links: discordField.Name = "Links"; discordField.Value = GetLinksString(artist); break; } if (discordField.Name.IsNotNullOrWhiteSpace() && discordField.Value.IsNotNullOrWhiteSpace()) { embed.Fields.Add(discordField); } } var payload = CreatePayload(null, new List <Embed> { embed }); _proxy.SendPayload(payload, Settings); }