jisho-sidekick
Version:
Japanese reading sidekick integrating Jisho and Memrise
39 lines (32 loc) • 892 B
JavaScript
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,
}