Added English localization logic during the regular scan process.
All checks were successful
ci / build-test (push) Successful in 2m17s
ci / publish-image (push) Successful in 1m41s

This commit is contained in:
2026-03-29 21:24:04 -04:00
parent d9e421178f
commit 0dd11e6351
11 changed files with 166 additions and 26 deletions

View File

@@ -72,6 +72,7 @@ public class VoiceWorkUpdater(AppDbContext dbContext, ITimeProvider timeProvider
.AsSplitQuery()
.Include(v => v.Creators)
.Include(v => v.Tags)
.Include(v => v.EnglishVoiceWorks)
.Include(v => v.Localizations)
.Include(v => v.SupportedLanguages)
.ToDictionaryAsync(v => v.ProductId, cancellationToken),
@@ -161,6 +162,7 @@ public class VoiceWorkUpdater(AppDbContext dbContext, ITimeProvider timeProvider
UpsertVoiceWorkCreators(ingest, upsertContext);
UpsertVoiceWorkSupportedLanguages(ingest, upsertContext);
UpsertSeries(ingest, upsertContext);
UpsertVoiceWorkLocalizations(ingest, upsertContext);
return dbContext.Entry(voiceWork).State switch
{
@@ -473,4 +475,39 @@ public class VoiceWorkUpdater(AppDbContext dbContext, ITimeProvider timeProvider
return series;
}
private void UpsertVoiceWorkLocalizations(VoiceWorkIngest ingest, VoiceWorkUpsertContext upsertContext)
{
// For now, just adding/updating English voice works
foreach (VoiceWorkLocalizationIngest localizationIngest in ingest.Localizations)
{
if (localizationIngest.Language is Language.English)
{
EnglishVoiceWork englishVoiceWork = GetOrAddEnglishVoiceWork(ingest, upsertContext);
englishVoiceWork.ProductName = localizationIngest.Title ?? string.Empty;
englishVoiceWork.Description = localizationIngest.Description ?? string.Empty;
englishVoiceWork.IsValid = true;
}
}
}
private EnglishVoiceWork GetOrAddEnglishVoiceWork(VoiceWorkIngest ingest, VoiceWorkUpsertContext upsertContext)
{
VoiceWork voiceWork = upsertContext.VoiceWorks[ingest.ProductId];
EnglishVoiceWork? englishVoiceWork = voiceWork.EnglishVoiceWorks.FirstOrDefault();
if (englishVoiceWork is null)
{
englishVoiceWork = new EnglishVoiceWork
{
VoiceWork = voiceWork,
ProductName = string.Empty,
Description = string.Empty
};
dbContext.EnglishVoiceWorks.Add(englishVoiceWork);
}
return englishVoiceWork;
}
}