UNPKG

jisho-sidekick

Version:

Japanese reading sidekick integrating Jisho and Memrise

39 lines (32 loc) 892 B
const _ = require('lodash') const request = require('request-promise') const API_ROOT = `http://jisho.org/api/v1/search/words` const KANA_ALONE_TAG = `Usually written using kana alone` function getSearchUrl(term, page=1) { return `${API_ROOT}?keyword=${encodeURIComponent(term)}&page=${page}` } function postProcessResults(results) { for (let result of results) { for (let sense of result.senses) { sense.kanaAlone = sense.tags.indexOf(KANA_ALONE_TAG) !== -1 } } return results } function search(term) { return ( request({uri: getSearchUrl(term), json: true}) .then(verifyResponse) .then(postProcessResults) ) } function verifyResponse(resp) { if (!resp.data) { console.log(require('util').inspect(resp)) throw new Error('Jisho response invalid, likely a problem with the network') } return resp.data } module.exports = { search, }