aboutsummaryrefslogtreecommitdiff
path: root/app/scripts/search.js
diff options
context:
space:
mode:
authorKumar Priyansh <[email protected]>2020-08-31 01:39:52 +0530
committerKumar Priyansh <[email protected]>2020-08-31 01:39:52 +0530
commit276016cb8582cdee63d10f4e7e6dfe2ba2af6a30 (patch)
treeafc988599de6a5f40207037ca8c4534bf48d77d6 /app/scripts/search.js
parent3a660d4bb6e70afb7dd5baa8ecb81fd4213f38de (diff)
downloaddictionary-276016cb8582cdee63d10f4e7e6dfe2ba2af6a30.tar.xz
dictionary-276016cb8582cdee63d10f4e7e6dfe2ba2af6a30.zip
Added capabitlity to search with synonyms
Diffstat (limited to 'app/scripts/search.js')
-rw-r--r--app/scripts/search.js123
1 files changed, 67 insertions, 56 deletions
diff --git a/app/scripts/search.js b/app/scripts/search.js
index 23479c6..76dc8f8 100644
--- a/app/scripts/search.js
+++ b/app/scripts/search.js
@@ -3,70 +3,81 @@ const results = document.getElementById('results');
const natural = require('natural');
const wordnet = new natural.WordNet();
+document.addEventListener('click', event => {
+ if (event.target.className === 'synonymLink') {
+ const word = event.target.innerHTML;
+ searchBox.value = word;
+ searchForWord(word);
+ }
+});
+
searchBox.addEventListener('keypress', (e) => {
if (e.keyCode === 13) {
- results.innerHTML = '';
const word = searchBox.value;
- wordnet.lookup(word, details => {
- console.log(details);
- details.forEach(detail => {
- let pos = '';
- switch (detail.pos) {
- case 'n':
- pos = 'noun';
- break;
- case 'v':
- pos = 'verb';
- break;
- case 'a':
- pos = 'adjective';
- break;
- case 's':
- pos = 'adjective';
- break;
- case 'r':
- pos = 'adverb';
- break;
- default:
- pos = '';
- break;
- }
-
- const wordType = document.createElement('p');
- wordType.innerHTML = pos;
- wordType.className = 'wordType';
- results.appendChild(wordType);
+ searchForWord(word);
+ }
+});
- const definition = document.createElement('p');
- definition.innerHTML = detail.def;
- definition.className = 'definition';
- results.appendChild(definition);
+function searchForWord(word) {
+ results.innerHTML = '';
+ wordnet.lookup(word, details => {
+ details.forEach(detail => {
+ let pos = '';
+ switch (detail.pos) {
+ case 'n':
+ pos = 'noun';
+ break;
+ case 'v':
+ pos = 'verb';
+ break;
+ case 'a':
+ pos = 'adjective';
+ break;
+ case 's':
+ pos = 'adjective';
+ break;
+ case 'r':
+ pos = 'adverb';
+ break;
+ default:
+ pos = '';
+ break;
+ }
- if (detail.synonyms.length) {
- const synonymText = document.createTextNode('Synonyms: ');
- const synonymParagraph = document.createElement('p');
- synonymParagraph.appendChild(synonymText);
+ const wordType = document.createElement('p');
+ wordType.innerHTML = pos;
+ wordType.className = 'wordType';
+ results.appendChild(wordType);
- detail.synonyms.forEach(synonym => {
- const currentSynonym = document.createElement('a');
- currentSynonym.innerHTML = synonym;
- currentSynonym.className = 'synonymLink';
- synonymParagraph.appendChild(currentSynonym);
- const spacer = document.createTextNode(' ');
- synonymParagraph.appendChild(spacer);
- });
+ const definition = document.createElement('p');
+ definition.innerHTML = detail.def;
+ definition.className = 'definition';
+ results.appendChild(definition);
- synonymParagraph.className = 'synonym'
- results.appendChild(synonymParagraph);
- }
+ if (detail.synonyms.length) {
+ const synonymText = document.createTextNode('Synonyms: ');
+ const synonymParagraph = document.createElement('p');
+ synonymParagraph.appendChild(synonymText);
- detail.exp.forEach(example => {
- const currentExample = document.createElement('p');
- currentExample.innerHTML = example;
- currentExample.className = 'example';
- results.appendChild(currentExample);
+ detail.synonyms.forEach(synonym => {
+ const currentSynonym = document.createElement('a');
+ currentSynonym.innerHTML = synonym;
+ currentSynonym.className = 'synonymLink';
+ synonymParagraph.appendChild(currentSynonym);
+ const spacer = document.createTextNode(' ');
+ synonymParagraph.appendChild(spacer);
});
+
+ synonymParagraph.className = 'synonym'
+ results.appendChild(synonymParagraph);
+ }
+
+ detail.exp.forEach(example => {
+ const currentExample = document.createElement('p');
+ currentExample.innerHTML = example;
+ currentExample.className = 'example';
+ results.appendChild(currentExample);
});
});
- }
-});
+ });
+}