Improve empty reading handling (#1497)

* Handle empty readings earlier in the definition creation process

* Remove empty reading check

* Remove special handling of empty readings
This commit is contained in:
toasted-nutbread 2021-03-06 15:53:45 -05:00 committed by GitHub
parent a65742a884
commit 16217728af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 9 additions and 11 deletions

View File

@ -70,8 +70,7 @@ class DisplayGenerator {
const uniqueExpressions = new Set();
const uniqueReadings = new Set();
for (let {expression, reading} of expressions) {
if (reading.length === 0) { reading = expression; }
for (const {expression, reading} of expressions) {
uniqueExpressions.add(expression);
uniqueReadings.add(reading);
}
@ -244,7 +243,7 @@ class DisplayGenerator {
const expressionContainer = node.querySelector('.expression-text');
const tagContainer = node.querySelector('.expression-tag-list');
node.dataset.readingIsSame = `${!reading || reading === expression}`;
node.dataset.readingIsSame = `${reading === expression}`;
node.dataset.frequency = termFrequency;
const pitchAccentCategories = this._getPitchAccentCategories(pitches);
@ -252,7 +251,7 @@ class DisplayGenerator {
node.dataset.pitchAccentCategories = pitchAccentCategories;
}
this._setTextContent(node.querySelector('.expression-reading'), reading.length > 0 ? reading : expression);
this._setTextContent(node.querySelector('.expression-reading'), reading);
this._appendFurigana(expressionContainer, furiganaSegments, this._appendKanjiLinks.bind(this));
this._appendMultiple(tagContainer, this._createTag.bind(this), termTags);

View File

@ -96,8 +96,7 @@ class DictionaryDataUtil {
const allExpressions = new Set();
const allReadings = new Set();
for (let {expression, reading, pitches: expressionPitches} of definition.expressions) {
if (reading.length === 0) { reading = expression; }
for (const {expression, reading, pitches: expressionPitches} of definition.expressions) {
allExpressions.add(expression);
allReadings.add(reading);

View File

@ -430,7 +430,7 @@ const JapaneseUtil = (() => {
// Furigana distribution
distributeFurigana(expression, reading) {
if (!reading || reading === expression) {
if (reading === expression) {
// Same
return [this._createFuriganaSegment(expression, '')];
}

View File

@ -648,8 +648,7 @@ class Translator {
for (const {expressions, frequencies: frequencies1, pitches: pitches1} of allDefinitions) {
for (let i = 0, ii = expressions.length; i < ii; ++i) {
let {expression, reading, frequencies: frequencies2, pitches: pitches2} = expressions[i];
if (reading.length === 0) { reading = expression; }
const {expression, reading, frequencies: frequencies2, pitches: pitches2} = expressions[i];
let readingMap = expressionMap.get(expression);
if (typeof readingMap === 'undefined') {
readingMap = new Map();
@ -1079,7 +1078,8 @@ class Translator {
}
async _createTermDefinitionFromDatabaseDefinition(databaseDefinition, source, rawSource, sourceTerm, reasons, isPrimary, enabledDictionaryMap) {
const {expression, reading, definitionTags, termTags, glossary, score, dictionary, id, sequence} = databaseDefinition;
const {expression, reading: rawReading, definitionTags, termTags, glossary, score, dictionary, id, sequence} = databaseDefinition;
const reading = (rawReading.length > 0 ? rawReading : expression);
const dictionaryOrder = this._getDictionaryOrder(dictionary, enabledDictionaryMap);
const termTagsExpanded = await this._expandTags(termTags, dictionary);
const definitionTagsExpanded = await this._expandTags(definitionTags, dictionary);

View File

@ -131,7 +131,7 @@ class AudioDownloader {
if (htmlReadings.length === 0) { continue; }
const htmlReading = dom.getTextContent(htmlReadings[0]);
if (htmlReading && (!reading || reading === htmlReading)) {
if (htmlReading && (reading === expression || reading === htmlReading)) {
url = this._normalizeUrl(url, response.url);
return [{type: 'url', url}];
}