wechatbot-webhook
Version:
给微信里加个 webhook 机器人,支持docker部署
70 lines (61 loc) • 1.9 kB
JavaScript
const path = require('path')
const { program } = require('commander')
const { version } = require('./package.json')
const { exec } = require('child_process')
const os = require('os')
const fs = require('fs')
const homeDirectory = os.homedir()
const envFilePath = (process.env.homeEnvCfg = path.join(
homeDirectory,
'./.wechat_bot_env'
))
const memoryCardFile = (process.env.homeMemoryCardPath = path.join(
homeDirectory,
'./loginSession.memory-card.json'
))
program
.name('wechatbot-webhook')
.description(
[
'给微信里加个 webhook 机器人',
'项目地址:https://github.com/danni-cool/wechatbot-webhook'
].join('\n')
)
.version(version)
.option('-r, --reload', '想重新扫码时加该参数,不加默认记住上次登录状态')
.option('-e, --edit', '打开 .wechat_bot_env 配置文件,可以填写上报消息API等')
.parse()
const options = program.opts()
// 清空 memory-card.json
if (options.reload) {
if (!fs.existsSync(memoryCardFile)) {
console.log('暂无登录缓存')
} else {
try {
fs.unlinkSync(memoryCardFile)
console.log('登录缓存已清空')
} catch (err) {
console.error(err)
process.exit(0)
}
}
}
if (options.edit) {
// 在 Windows 上,可以使用 'start' 命令; 在 macOS 上,使用 'open'; 在 Linux 上,使用 'xdg-open'
const isWindows = process.platform === 'win32'
const command = isWindows
? `explorer "${envFilePath}"`
: `open "${envFilePath}" || xdg-open "${envFilePath}"`
console.log(`执行命令: ${command}`)
exec(command, (err) => {
if (err) {
console.error(`执行出错: ${err}`)
return
}
console.log(`文件 ${envFilePath} 已在编辑器中打开`)
})
process.exit(0)
}
require(`${path.join(__dirname, './preStart.js')}`)
require(path.join(__dirname, './lib/bot.js'))