fix: Return a void array when failing to parse terms instead of null
This commit is contained in:
parent
c19250e29e
commit
0ac5d035a2
|
@ -70,7 +70,7 @@ class Note
|
||||||
$terms = Term::fromNoteFields($note->fields);
|
$terms = Term::fromNoteFields($note->fields);
|
||||||
|
|
||||||
// If not defined, find them from the highlighted parts in the sentence
|
// If not defined, find them from the highlighted parts in the sentence
|
||||||
if (empty($note->terms)) {
|
if (empty($terms)) {
|
||||||
// 1. Get all spans in the text
|
// 1. Get all spans in the text
|
||||||
preg_match_all(
|
preg_match_all(
|
||||||
self::HIGHLIGHT_PATTERN,
|
self::HIGHLIGHT_PATTERN,
|
||||||
|
@ -90,6 +90,8 @@ class Note
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($terms)) dd($note);
|
||||||
|
|
||||||
// Set to null whatever is null
|
// Set to null whatever is null
|
||||||
$readings = array_map(
|
$readings = array_map(
|
||||||
fn($x) => in_array($x, ['_', '_', '']) ? null : $x,
|
fn($x) => in_array($x, ['_', '_', '']) ? null : $x,
|
||||||
|
|
|
@ -139,7 +139,7 @@ class Term
|
||||||
return Term::fromVocabDefLine($kanji . $separator . $def);
|
return Term::fromVocabDefLine($kanji . $separator . $def);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fromNoteFields(array $fields): ?array
|
public static function fromNoteFields(array $fields): array
|
||||||
{
|
{
|
||||||
// -------------------- Trying to extract it with the modern syntax ---
|
// -------------------- Trying to extract it with the modern syntax ---
|
||||||
// 言葉: word
|
// 言葉: word
|
||||||
|
@ -159,7 +159,7 @@ class Term
|
||||||
$kanjis = explode('|', $fields['VocabKanji']);
|
$kanjis = explode('|', $fields['VocabKanji']);
|
||||||
$defs = explode('|', $fields['VocabDef']);
|
$defs = explode('|', $fields['VocabDef']);
|
||||||
// Number of legacy definitions is different from number of kanji
|
// Number of legacy definitions is different from number of kanji
|
||||||
if (count($kanjis) !== count($defs)) return null;
|
if (count($kanjis) !== count($defs)) return [];
|
||||||
|
|
||||||
$terms = [];
|
$terms = [];
|
||||||
foreach (array_combine($kanjis, $defs) as $kanji => $def) {
|
foreach (array_combine($kanjis, $defs) as $kanji => $def) {
|
||||||
|
@ -167,6 +167,6 @@ class Term
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search for nulls, if found, it's owari da
|
// Search for nulls, if found, it's owari da
|
||||||
return in_array(null, $terms, true) ? null : $terms;
|
return in_array(null, $terms, true) ? [] : $terms;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue