From 803bb71bbed9ff53356f871eb114efa06b3e8fb9 Mon Sep 17 00:00:00 2001 From: Lawrence Angrave Date: Wed, 17 Jan 2024 17:01:30 -0600 Subject: [PATCH 1/3] Add captions to only to Azure captions --- ClassTranscribeDatabase/CaptionQueries.cs | 4 ++-- TaskEngine/Tasks/TranscriptionTask.cs | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ClassTranscribeDatabase/CaptionQueries.cs b/ClassTranscribeDatabase/CaptionQueries.cs index df9d417..1a58b85 100644 --- a/ClassTranscribeDatabase/CaptionQueries.cs +++ b/ClassTranscribeDatabase/CaptionQueries.cs @@ -21,11 +21,11 @@ public CaptionQueries(CTDbContext context) /// Get the captions for a given videoId /// /// Language of the captions to fetch. - public async Task> GetCaptionsAsync(string videoId, string language = "en-US") + public async Task> GetCaptionsAsync(string videoId, string language = "en-US", string sourceInternalRef) { try { - var transcriptionId = _context.Transcriptions.Where(t => t.Language == language && t.VideoId == videoId + var transcriptionId = _context.Transcriptions.Where(t => t.Language == language && t.VideoId == videoId && t.SourceInternalRef== sourceInternalRef && t.TranscriptionType == TranscriptionType.Caption).First().Id; return await GetCaptionsAsync(transcriptionId); } diff --git a/TaskEngine/Tasks/TranscriptionTask.cs b/TaskEngine/Tasks/TranscriptionTask.cs index 8d28538..0b25a7d 100644 --- a/TaskEngine/Tasks/TranscriptionTask.cs +++ b/TaskEngine/Tasks/TranscriptionTask.cs @@ -100,7 +100,9 @@ protected async override Task OnConsume(string videoId, TaskParameters taskParam { buildMockCaptions(videoId); } - + const string SOURCEINTERNALREF= "ClassTranscribe/Azure"; // Do not change me; this is a key inside the database + // to indicate the source of the captions was this code + using (var _context = CTDbContext.CreateDbContext()) { @@ -165,10 +167,10 @@ protected async override Task OnConsume(string videoId, TaskParameters taskParam foreach (string language in allLanguages) { - var existing = await _captionQueries.GetCaptionsAsync(video.Id, language); + var existing = await _captionQueries.GetCaptionsAsync(video.Id, language,SOURCEINTERNALREF); captionsMap[language] = existing; - startAfterMap[language] = TimeSpan.Zero; + startAfterMap[language] = TimeSpan.Zero; if (existing.Any()) { TimeSpan lastCaptionTime = existing.Select(c => c.End).Max(); @@ -196,10 +198,9 @@ protected async override Task OnConsume(string videoId, TaskParameters taskParam { var theLanguage = captionsInLanguage.Key; var theCaptions = captionsInLanguage.Value; - - if (theCaptions.Any()) + if (theCaptions.Count>0) { - var t = _context.Transcriptions.SingleOrDefault(t => t.VideoId == video.Id && t.Language == theLanguage); + var t = _context.Transcriptions.SingleOrDefault(t => t.VideoId == video.Id && t.SourceInternalRef == SOURCEINTERNALREF && t.Language == theLanguage && t.TranscriptionType == TranscriptionType.Caption); GetLogger().LogInformation($"Find Existing Transcriptions null={t == null}"); // Did we get the default or an existing Transcription entity? if (t == null) @@ -211,7 +212,7 @@ protected async override Task OnConsume(string videoId, TaskParameters taskParam Language = theLanguage, VideoId = video.Id, Label = $"{theLanguage} (ClassTranscribe)", - SourceInternalRef = "ClassTranscribe/Azure", + SourceInternalRef = SOURCEINTERNALREF, // SourceLabel = "ClassTranscribe (Azure" + (phraseHints.Length>0 ?" with phrase hints)" : ")") }; _context.Add(t); From b458d4d58ac9f4ff2824c58d029fe650b01c4280 Mon Sep 17 00:00:00 2001 From: Lawrence Angrave Date: Wed, 17 Jan 2024 17:05:24 -0600 Subject: [PATCH 2/3] Fix Compiler error --- ClassTranscribeDatabase/CaptionQueries.cs | 2 +- TaskEngine/Tasks/TranscriptionTask.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ClassTranscribeDatabase/CaptionQueries.cs b/ClassTranscribeDatabase/CaptionQueries.cs index 1a58b85..cf3e8a1 100644 --- a/ClassTranscribeDatabase/CaptionQueries.cs +++ b/ClassTranscribeDatabase/CaptionQueries.cs @@ -21,7 +21,7 @@ public CaptionQueries(CTDbContext context) /// Get the captions for a given videoId /// /// Language of the captions to fetch. - public async Task> GetCaptionsAsync(string videoId, string language = "en-US", string sourceInternalRef) + public async Task> GetCaptionsAsync(string videoId, string sourceInternalRef, string language) // = "en-US" { try { diff --git a/TaskEngine/Tasks/TranscriptionTask.cs b/TaskEngine/Tasks/TranscriptionTask.cs index 0b25a7d..397e3df 100644 --- a/TaskEngine/Tasks/TranscriptionTask.cs +++ b/TaskEngine/Tasks/TranscriptionTask.cs @@ -167,7 +167,7 @@ protected async override Task OnConsume(string videoId, TaskParameters taskParam foreach (string language in allLanguages) { - var existing = await _captionQueries.GetCaptionsAsync(video.Id, language,SOURCEINTERNALREF); + var existing = await _captionQueries.GetCaptionsAsync(video.Id, SOURCEINTERNALREF, language); captionsMap[language] = existing; startAfterMap[language] = TimeSpan.Zero; From ea0018c56090a44695e0aac33e85097893d14c4a Mon Sep 17 00:00:00 2001 From: Lawrence Angrave Date: Wed, 17 Jan 2024 17:08:15 -0600 Subject: [PATCH 3/3] Epubs from SOURCEINTERNALREF --- ClassTranscribeServer/Controllers/EPubsController.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ClassTranscribeServer/Controllers/EPubsController.cs b/ClassTranscribeServer/Controllers/EPubsController.cs index bdc48e6..87b6129 100644 --- a/ClassTranscribeServer/Controllers/EPubsController.cs +++ b/ClassTranscribeServer/Controllers/EPubsController.cs @@ -104,8 +104,9 @@ public async Task>> GetEpubData(string mediaId, SourceType = ResourceType.Media, SourceId = mediaId }; - - var captions = await _captionQueries.GetCaptionsAsync(media.VideoId, epub.Language); + const string SOURCEINTERNALREF= "ClassTranscribe/Azure"; // Do not change me; this is a key inside the database + // to indicate the source of the captions was this code + var captions = await _captionQueries.GetCaptionsAsync(media.VideoId, SOURCEINTERNALREF, epub.Language); _logger.LogInformation($"GetEpubData({mediaId}) - returning combined SceneData"); return GetSceneData(sceneArray, captions);