fix(overlay): resolve unspaced Japanese name splits and scan recovery (#146)

This commit is contained in:
2026-07-07 02:33:46 -07:00
committed by GitHub
parent e7739de51c
commit 61f39d1e09
19 changed files with 884 additions and 76 deletions
@@ -14,6 +14,8 @@ import type {
CharacterDictionarySnapshotImage,
CharacterDictionaryTermEntry,
CharacterRecord,
NameSplitSource,
ResolvedNameSplits,
} from './types';
export function buildSnapshotImagePath(mediaId: number, charId: number, ext: string): string {
@@ -34,6 +36,8 @@ export function buildSnapshotFromCharacters(
getCollapsibleSectionOpenState: (
section: AnilistCharacterDictionaryCollapsibleSectionKey,
) => boolean,
resolvedNameSplits?: ResolvedNameSplits,
nameSplitSource: NameSplitSource = 'heuristic',
): CharacterDictionarySnapshot {
const termEntries: CharacterDictionaryTermEntry[] = [];
@@ -45,7 +49,7 @@ export function buildSnapshotFromCharacters(
const vaImg = imagesByVaId.get(va.id);
if (vaImg) vaImagePaths.set(va.id, vaImg.path);
}
const candidateTerms = buildNameTerms(character);
const candidateTerms = buildNameTerms(character, resolvedNameSplits);
const glossary = createDefinitionGlossary(
character,
mediaId,
@@ -59,12 +63,14 @@ export function buildSnapshotFromCharacters(
character.nativeName,
character.firstNameHint,
character.lastNameHint,
resolvedNameSplits,
);
const readings = generateNameReadings(
character.nativeName,
character.fullName,
character.firstNameHint,
character.lastNameHint,
resolvedNameSplits,
);
for (const term of candidateTerms) {
if (seenTerms.has(term)) continue;
@@ -84,6 +90,7 @@ export function buildSnapshotFromCharacters(
mediaTitle,
entryCount: termEntries.length,
updatedAt,
nameSplitSource,
termEntries,
images: [...imagesByCharacterId.values(), ...imagesByVaId.values()],
};