diff --git a/apps/entertainment.js b/apps/entertainment.js index 1221a7c..c76b834 100644 --- a/apps/entertainment.js +++ b/apps/entertainment.js @@ -64,7 +64,11 @@ export class Entertainment extends plugin { } await e.reply('在统计啦,请稍等...') await redis.set('CHATGPT:WORDCLOUD:ALL', '1', { EX: 600 }) - await makeWordcloud(e, e.group_id) + try { + await makeWordcloud(e, e.group_id) + } catch (err) { + await e.reply(err) + } await redis.del('CHATGPT:WORDCLOUD:ALL') } else { await e.reply('请在群里发送此命令') diff --git a/utils/wordcloud/tokenizer.js b/utils/wordcloud/tokenizer.js index 8cb2a5e..41c77a9 100644 --- a/utils/wordcloud/tokenizer.js +++ b/utils/wordcloud/tokenizer.js @@ -1,6 +1,12 @@ -import nodejieba from 'nodejieba' import { Config } from '../config.js' +let nodejieba +try { + nodejieba = await import('nodejieba').default +} catch (err) { + logger.info('未安装nodejieba,娱乐功能-词云统计不可用') +} + export class Tokenizer { async getTodayHistory (groupId, date = new Date()) { if (!groupId) { @@ -32,6 +38,9 @@ export class Tokenizer { } async getTodayKeywordTopK (groupId, topK = 100) { + if (!nodejieba) { + throw new Error('未安装nodejieba,娱乐功能-词云统计不可用') + } let chats = await this.getTodayHistory(groupId) let chatContent = chats .map(c => c.raw_message