UNPKG

linguee-client

Version:
120 lines 4.85 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.WordExtractor = void 0; const Extractor_1 = __importStar(require("./Extractor")); class WordExtractor extends Extractor_1.default { constructor(extractors) { super(extractors); } createExtratorStorage() { return { term: '', type: '', additionalInfo: null, translations: [], uncommonTranslations: [], audio: [], }; } createAdditionalInfoStorage() { return { verbs: [], plural: '', context: '', }; } run(content) { const storage = this.createExtratorStorage(); const $descriptionWrapper = content.find('.lemma_desc'); storage.term = $descriptionWrapper.find('a.dictLink').text(); const $audio = $descriptionWrapper.find('a.audio'); if ($audio.length) { const audio = this.extractors.audio.run($audio); if (audio) { storage.audio.push(audio); } } const $wordType = $descriptionWrapper.find('.tag_wordtype'); if ($wordType.length) { storage.type = $wordType.text(); } else if ($descriptionWrapper.find('.tag_type').length) { storage.type = $descriptionWrapper.find('.tag_type').text(); } const $formsPlural = $descriptionWrapper.find('.forms_plural'); const additionalInfo = this.createAdditionalInfoStorage(); let joinAdditionalInfo = false; if ($formsPlural.length) { joinAdditionalInfo = true; additionalInfo.plural = $formsPlural.find('.formLink').text().trim(); } const $formsVerbs = $descriptionWrapper.find('.forms_verb'); if ($formsVerbs.length) { joinAdditionalInfo = true; $formsVerbs.find('.tag_s .formLink').each((_, elem) => { additionalInfo.verbs.push((0, Extractor_1.createExtractorContent)(elem).text()); }); } const $context = $descriptionWrapper.find('.tag_lemma_context'); if ($context.length) { joinAdditionalInfo = true; additionalInfo.context = $context.find('.placeholder').text().trim(); } const $translationsLines = content.find('.translation_lines'); if (joinAdditionalInfo) { storage.additionalInfo = additionalInfo; } (() => { const $translations = $translationsLines.find('> .translation'); if ($translations.length) { for (let i = 0; i < $translations.length; i++) { const translation = this.extractors.translation.run($translations.eq(i)); storage.translations.push(translation); } } })(); (() => { const $translationsGroup = $translationsLines.find('.translation_group'); for (let i = 0; i < $translationsGroup.length; i++) { const $uncommon = $translationsGroup.eq(i).find('.notascommon'); const $translations = $translationsGroup.eq(i).find('.translation'); for (let j = 0; j < $translations.length; j++) { const translation = this.extractors.translation.run($translations.eq(j)); if (!$uncommon.length) { storage.translations.push(translation); } else { storage.uncommonTranslations.push(translation); } } } })(); return storage; } } exports.WordExtractor = WordExtractor; exports.default = WordExtractor; //# sourceMappingURL=WordExtractor.js.map