UNPKG

biblia.js

Version:
69 lines (53 loc) 2.03 kB
/******** 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 } })