aboutsummaryrefslogtreecommitdiff
path: root/ext/bg/js/search-query-parser.js
diff options
context:
space:
mode:
authorsiikamiika <siikamiika@users.noreply.github.com>2019-11-05 15:56:45 +0200
committersiikamiika <siikamiika@users.noreply.github.com>2019-11-23 17:45:44 +0200
commit955e131f9673e006556bc2c5e0b3551a614ccc48 (patch)
treedcabce9d7e6008ef490d7e6316eae99008db1c70 /ext/bg/js/search-query-parser.js
parent17003189888694da51d840dcf0464355bb342a4c (diff)
add parser selection options
Diffstat (limited to 'ext/bg/js/search-query-parser.js')
-rw-r--r--ext/bg/js/search-query-parser.js40
1 files changed, 25 insertions, 15 deletions
diff --git a/ext/bg/js/search-query-parser.js b/ext/bg/js/search-query-parser.js
index 1cf00425..81eb18c3 100644
--- a/ext/bg/js/search-query-parser.js
+++ b/ext/bg/js/search-query-parser.js
@@ -86,22 +86,32 @@ class QueryParser {
this.search.setSpinnerVisible(true);
await this.setPreview(text);
- // const results = await apiTextParse(text, this.search.getOptionsContext());
- const results = await apiTextParseMecab(text, this.search.getOptionsContext());
-
- const content = await apiTemplateRender('query-parser.html', {
- terms: results.map((term) => {
- return term.filter(part => part.text.trim()).map((part) => {
- return {
- text: Array.from(part.text),
- reading: part.reading,
- raw: !part.reading || !part.reading.trim(),
- };
- });
- })
- });
+ const results = {};
+ if (this.search.options.parsing.enableScanningParser) {
+ results['scan'] = await apiTextParse(text, this.search.getOptionsContext());
+ }
+ if (this.search.options.parsing.enableMecabParser) {
+ let mecabResults = await apiTextParseMecab(text, this.search.getOptionsContext());
+ for (const mecabDictName in mecabResults) {
+ results[`mecab-${mecabDictName}`] = mecabResults[mecabDictName];
+ }
+ }
- this.queryParser.innerHTML = content;
+ const contents = await Promise.all(Object.values(results).map(async result => {
+ return await apiTemplateRender('query-parser.html', {
+ terms: result.map((term) => {
+ return term.filter(part => part.text.trim()).map((part) => {
+ return {
+ text: Array.from(part.text),
+ reading: part.reading,
+ raw: !part.reading || !part.reading.trim(),
+ };
+ });
+ })
+ });
+ }));
+
+ this.queryParser.innerHTML = contents.join('<hr>');
this.queryParser.querySelectorAll('.query-parser-char').forEach((charElement) => {
this.activateScanning(charElement);