biblia.js
Version:
Bíblia-sagrada.js
69 lines (53 loc) • 2.03 kB
JavaScript
/******** Feito por Lindionez Macedo ********/
const biblia = require('../data/biblia.json')
const { util, cache } = require('../tools')
const cacheSave = []
/**
* Returns an array of all found locations.
* @param {string} palavra
*/
const pesquisarPalavra = (palavra) => {
if (cache.hasCache(palavra, cacheSave)) return cache.getCache(palavra, cacheSave)
const termo = util.retira_acentos(palavra).toLowerCase()
const positions = []
for (let l = 0; l < biblia.length; l++) {
const livro = biblia[l]
const capitulos = livro.capitulos
if (!Array.isArray(capitulos)) continue
for (let c = 0; c < capitulos.length; c++) {
const capitulo = capitulos[c]
if (!Array.isArray(capitulo)) continue
for (let v = 0; v < capitulo.length; v++) {
const versiculo = capitulo[v]
if (typeof versiculo !== 'string') continue
const textoNormalizado = util.retira_acentos(versiculo).toLowerCase()
if (textoNormalizado.includes(termo)) {
positions.push({
livro: livro.nome,
capitulo: c + 1,
versiculo: v + 1,
})
}
}
}
}
cache.setCache(palavra, positions, cacheSave)
return positions
}
/**
* Returns a random verse where the word is included.
* @param {string} palavra
*/
const pesquisar = (palavra) => {
const result = pesquisarPalavra(palavra)
if (!result.length) return null
const resultadoFinal = result[Math.floor(Math.random() * result.length)]
return resultadoFinal
}
process.on('message', msg => {
const { id, tipo, get } = msg
switch (tipo) {
case 'pspalavra': process.send({ id: id, result: pesquisarPalavra(get) }); break
case 'palavra': process.send({ id: id, result: pesquisar(get) }); break
}
})