|
|
|
|
|
import '../config/init.js' |
|
|
import log4js from 'log4js' |
|
|
import PluginsLoader from '../plugins/loader.js' |
|
|
import cfg from '../config/config.js' |
|
|
|
|
|
class Command { |
|
|
constructor () { |
|
|
this.command = '' |
|
|
|
|
|
|
|
|
global.Bot = {} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async run (type = 'default') { |
|
|
|
|
|
await PluginsLoader.load() |
|
|
|
|
|
this.getCommand() |
|
|
|
|
|
let e = this.fakeE(type) |
|
|
|
|
|
|
|
|
await PluginsLoader.deal(e) |
|
|
} |
|
|
|
|
|
|
|
|
getCommand () { |
|
|
if (process.argv[2]) { |
|
|
this.command = '#' + process.argv[2].replace(/#|#|井/g, '#').trim() |
|
|
} |
|
|
} |
|
|
|
|
|
fakeE (id = 'default') { |
|
|
|
|
|
let data = cfg.getYaml('test', id) |
|
|
let text = this.command || data.text || '' |
|
|
logger.info(`测试命令 [${text}]`) |
|
|
let e = { |
|
|
test: true, |
|
|
self_id: 10000, |
|
|
time: new Date().getTime(), |
|
|
post_type: data.post_type || 'message', |
|
|
message_type: data.message_type || 'group', |
|
|
sub_type: data.sub_type || 'normal', |
|
|
group_id: data.group_id || 826198224, |
|
|
group_name: data.group_name || '测试群', |
|
|
user_id: data.user_id, |
|
|
anonymous: null, |
|
|
message: [{ type: 'text', text }], |
|
|
raw_message: text, |
|
|
font: '微软雅黑', |
|
|
sender: { |
|
|
user_id: data.user_id, |
|
|
nickname: '测试', |
|
|
card: data.card, |
|
|
sex: 'male', |
|
|
age: 0, |
|
|
area: 'unknown', |
|
|
level: 2, |
|
|
role: 'owner', |
|
|
title: '' |
|
|
}, |
|
|
group: { |
|
|
mute_left: 0, |
|
|
sendMsg: (msg) => { |
|
|
logger.info(`回复内容 ${msg}`) |
|
|
} |
|
|
}, |
|
|
friend: { |
|
|
getFileUrl: (fid) => { |
|
|
return data.message[0].url |
|
|
} |
|
|
}, |
|
|
message_id: 'JzHU0DACliIAAAD3RzTh1WBOIC48', |
|
|
reply: async (msg) => { |
|
|
logger.info(`回复内容 ${msg}`) |
|
|
}, |
|
|
toString: () => { |
|
|
return text |
|
|
} |
|
|
} |
|
|
|
|
|
if (data.message) { |
|
|
e.message = data.message |
|
|
} |
|
|
|
|
|
return e |
|
|
} |
|
|
|
|
|
|
|
|
setLog () { |
|
|
log4js.configure({ |
|
|
appenders: { |
|
|
|
|
|
out: { |
|
|
type: 'console', |
|
|
layout: { |
|
|
type: 'pattern', |
|
|
pattern: '[%d{hh:mm:ss.SSS}][%[%5.5p%]] - %m' |
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
categories: { |
|
|
|
|
|
default: { appenders: ['out'], level: 'debug' } |
|
|
} |
|
|
}) |
|
|
global.logger = log4js.getLogger('[test]') |
|
|
logger.level = 'debug' |
|
|
} |
|
|
} |
|
|
|
|
|
export default new Command() |
|
|
|