From c51775592ea621a27797e8f2caea9e05b5cef714 Mon Sep 17 00:00:00 2001 From: Brian Bicknell Date: Mon, 22 Dec 2025 23:33:46 -0500 Subject: [PATCH] Added subtitle language logic. --- .../Ingestion/VoiceWorkUpdater.cs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/JSMR.Infrastructure/Ingestion/VoiceWorkUpdater.cs b/JSMR.Infrastructure/Ingestion/VoiceWorkUpdater.cs index 3eac0a3..791cdec 100644 --- a/JSMR.Infrastructure/Ingestion/VoiceWorkUpdater.cs +++ b/JSMR.Infrastructure/Ingestion/VoiceWorkUpdater.cs @@ -190,6 +190,7 @@ public class VoiceWorkUpdater(AppDbContext dbContext, ITimeProvider timeProvider voiceWork.StarRating = ingest.StarRating; voiceWork.Votes = ingest.Votes; voiceWork.OriginalProductId = ingest.Translation?.OriginalProductId; + voiceWork.SubtitleLanguage = GetSubtitleLanguage(ingest); voiceWork.AIGeneration = (byte)ingest.AI; voiceWork.IsValid = true; voiceWork.LastScannedDate = ComputeLastScannedDate(voiceWork.LastScannedDate, state, upsertContext); @@ -266,6 +267,36 @@ public class VoiceWorkUpdater(AppDbContext dbContext, ITimeProvider timeProvider return state.WentOnSale ? current : existing ?? current; } + private static byte GetSubtitleLanguage(VoiceWorkIngest ingest) + { + Language[] orderedLanguages = + [ + Language.English, + Language.ChineseSimplified, + Language.ChineseTraditional, + Language.Korean + ]; + + foreach (Language language in orderedLanguages) + { + if (ingest.SupportedLanguages.Any(x => x.Language == language)) + { + switch (language) + { + case Language.English: + return 1; + case Language.ChineseSimplified: + case Language.ChineseTraditional: + return 2; + case Language.Korean: + return 3; + } + } + } + + return 0; + } + private void UpsertTags(VoiceWorkIngest ingest, VoiceWorkUpsertContext upsertContext) { foreach (string tagName in ingest.Tags)