UNPKG

keli-baike

Version:

keli 的百度百科插件,提供词条百科、词条搜索功能,支持模糊匹配

44 lines (36 loc) 1.33 kB
const { Plugin } = require('keli') const { fetchBaike, fetchItems } = require('./services') const { name, version } = require('./package.json') const plugin = new Plugin(name, version) const baike = /^百科\s*([^\s]+)\s*$/ const baikeIndex = /^百科\s*([^\s]+)\s+(\d+)\s*$/ const item = /^词条\s*([^\s]+)\s*$/ plugin.onMounted(bot => { plugin.onMatch(['百科', '百度百科', 'baike'], e => { e.reply('百科<词条>\n词条<词条>\n百科<词条> <序号>', true) }) plugin.onMatch(baike, async event => { const word = baike.exec(event.raw_message)[1] const info = await fetchBaike(word) event.reply(info) }) plugin.onMatch(baikeIndex, async event => { const results = baikeIndex.exec(event.raw_message) const [_, word, idx] = results const info = await fetchBaike(word, idx) event.reply(info) }) plugin.onMatch(item, async event => { const word = item.exec(event.raw_message)[1] const info = await fetchItems(word, bot.uin, bot.nickname) const n = info.length - 1 const isPrivate = event.message_type === 'private' if (Array.isArray(info)) { const msg = await bot.makeForwardMsg(info, `共 ${n} 个义项`, '轻按查看详情', isPrivate) event.reply(msg) } else { event.reply(info) } }) }) module.exports = { plugin }