Skip to content

Commit

Permalink
Fix interviewer name in recordings table (#217)
Browse files Browse the repository at this point in the history
  • Loading branch information
ctot-nondef authored Jan 24, 2025
2 parents 5b9c668 + a461d1c commit a1ccc05
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 16 deletions.
30 changes: 18 additions & 12 deletions composables/use-tei-headers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,33 +106,39 @@ const extractMetadata = function (
template.place.region = place.region.$;
}
}

if (
template.dataType === "CorpusText" &&
item.teiHeader.fileDesc.titleStmt.respStmts?.at(0)?.persName &&
item.teiHeader.fileDesc.sourceDesc.recordingStmt?.recording.respStmt?.persName &&
corpusMetadata
) {
const persName = item.teiHeader.fileDesc.titleStmt.respStmts[0]?.persName as TeiTypedTarget;
const monogram = (persName["@ref"] ?? "missing persName").replace("corpus:", "");
const persName = item.teiHeader.fileDesc.sourceDesc.recordingStmt.recording.respStmt
.persName as TeiTypedTarget;

const respPerson = corpusMetadata.fileDesc.titleStmt.respStmts?.find((resp: RespStmt) => {
if (resp.persName && isPersName(resp.persName)) {
const persName = resp.persName;
return persName["@id"] === monogram;
return resp.persName["@ref"] === persName["@ref"];
} else {
return false;
}
});

console.log(respPerson);
let name;
if (respPerson?.persName) {
const persName2 = respPerson.persName as PersName;
name =
persName2["@forename"] && persName2["@surname"]
? `${persName2["@forename"]} ${persName2["@surname"]}`
persName2.forename && persName2.surname
? `${persName2.forename.$} ${persName2.surname.$}`
: persName2.$;
} else {
name = monogram;
name = (persName["@ref"] ?? "missing persName").replace("corpus:", "");
}
if (name) template.resp = name;
} else if (
template.dataType === "CorpusText" &&
!item.teiHeader.fileDesc.sourceDesc.recordingStmt?.recording.respStmt
) {
template.resp = "Unknown";
}

template.person = extractPersons(item, corpusMetadata);
Expand All @@ -145,10 +151,10 @@ const extractMetadata = function (
categories: [],
};
corpusMetadata.encodingDesc.classDecl?.taxonomies.forEach((t) => {
mergedTaxonomies.categories = mergedTaxonomies.categories?.concat(t.categories!);
mergedTaxonomies.categories = mergedTaxonomies.categories.concat(t.categories);
return mergedTaxonomies;
});
const category = mergedTaxonomies.categories?.find(
const category = mergedTaxonomies.categories.find(
(cat) => cat["@id"] === categoryId?.replace("corpus:", ""),
);

Expand Down Expand Up @@ -185,7 +191,7 @@ function isTEIs(item: TeiCorpus | object): item is TeiCorpus {
}

function isPersName(item: PersName | object): item is PersName {
return Object.hasOwn(item, "@id");
return Object.hasOwn(item, "@ref");
}

export function useTEIHeaders() {
Expand Down
6 changes: 2 additions & 4 deletions types/teiCorpus.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,6 @@ export type PersName = {
"@id": string;
"@full"?: string;
$?: string;
"@forename"?: string;
"@surname"?: string;
forename?: XmlTextNode;
surname?: XmlTextNode;
};
Expand Down Expand Up @@ -165,7 +163,7 @@ export type Recording = {
"@dur-iso": string;
"@type": string;
date?: TeiDate;
respStmt: RespStmt;
respStmt?: RespStmt;
media?: Media;
p?: P;
};
Expand Down Expand Up @@ -235,7 +233,7 @@ export type ProfileDesc = {
};

export type Taxonomy = {
categories?: Array<Category>;
categories: Array<Category>;
};

export type Category = {
Expand Down

0 comments on commit a1ccc05

Please sign in to comment.