Multi-bots with multi-puppet error
Created by: amoydavid
1. Versions
-
What is your wechaty version? "wechaty": "^0.22.1",
-
Which puppet are you using for wechaty? (padchat/puppeteer/padpro/...) Answer:padpro
-
What is your wechaty-puppet-XXX(padchat/puppeteer/) version? Answer: "wechaty-puppet-padpro": "^0.2.1"
-
What is your node version? (run
node --version
) Answer: v11.11.0 -
What os are you using Answer: mac
2. Describe the bug
When I tried to run two bots with padpro, I found the second bot comes to a Web bot.
3. To Reproduce
main js code
const puppet = new PuppetPadpro({
token: TOKEN1,
})
const puppet2 = new PuppetPadpro({
token: TOKEN2,
})
const bot1 = new Wechaty({
name: 'bot1',
puppet,
profile: 'bot1'
})
const bot2 = new Wechaty({
name: 'bot2',
puppet2,
profile: 'bot2'
})
const bots = [bot1, bot2];
bots.map((_bot, idx) => {
_bot
.on('scan', (qrcode, status) => {
setBotQr(_bot.options.name, qrcode);
qrTerm.generate(qrcode)
console.log(`${qrcode}\n[${status}] Scan QR Code in above url to login ` + _bot.options.name + `: `)
})
.on('message', onMessage.bind(_bot))
.on('login', onLogin.bind(_bot))
.on('room-join', onRoomJoin.bind(_bot))
.on('friendship', onFriendShip.bind(_bot))
.init();
})
4. Expected behavior
both two bots will login as iPad
5. Actual behavior
the second bot login as Web Wechat
6. Full Output Logs
Set env WECHATY_LOG=silly
in order to set log level to silly, then we can get the full log (If you dosen't set log env, log level is info as default, we cannot get the full log)
We need full log instead of log screenshot or log fragments!
Show Logs
$ WECHATY_LOG=silly node yourbot.js
Question: Paste your FULL(DO NOT ONLY PROVIDE FRAGMENTS) log messages
Answer:
09:49:34 SILL Config WECHATY_LOG set level to silly
09:49:34 INFO Config registering process.on("unhandledRejection") for development/debug
09:49:34 VERB Config constructor()
puppet_padpro_private-token
09:49:35 VERB Puppet constructor({"timeout":240,"token":"puppet_padpro_private-token"}) #0
09:49:35 VERB StateSwitch constructor(name=PuppetPadpro)
09:49:35 VERB MemoryCard constructor(undefined)
09:49:35 VERB MemoryCard getStorage() for storage type: N/A
09:49:35 VERB MemoryCard load() from storage: N/A
09:49:35 VERB MemoryCard load() no storage
09:49:35 VERB Puppet constructor() watchdog timeout set to 240 seconds
09:49:35 VERB HotImport callerResolve(., /Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet/dist/src/puppet.js)
09:49:35 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/hot-import/dist/src/hot-import.js, type=Object
09:49:35 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet/dist/src/puppet.js, type=null
09:49:35 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet-padpro/dist/src/puppet-padpro.js, type=null
09:49:35 SILL HotImport callerResolve() callerFile=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet-padpro/dist/src/puppet-padpro.js
09:49:35 VERB Puppet constructor() childClassPath=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet-padpro/dist/src
09:49:35 VERB Puppet constructor({"timeout":240,"token":"puppet_padpro_private_token"}) #1
09:49:35 VERB StateSwitch constructor(name=PuppetPadpro)
09:49:35 VERB MemoryCard constructor(undefined)
09:49:35 VERB MemoryCard getStorage() for storage type: N/A
09:49:35 VERB MemoryCard load() from storage: N/A
09:49:35 VERB MemoryCard load() no storage
09:49:35 VERB Puppet constructor() watchdog timeout set to 240 seconds
09:49:35 VERB HotImport callerResolve(., /Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet/dist/src/puppet.js)
09:49:35 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/hot-import/dist/src/hot-import.js, type=Object
09:49:35 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet/dist/src/puppet.js, type=null
09:49:35 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet-padpro/dist/src/puppet-padpro.js, type=null
09:49:35 SILL HotImport callerResolve() callerFile=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet-padpro/dist/src/puppet-padpro.js
09:49:35 VERB Puppet constructor() childClassPath=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet-padpro/dist/src
09:49:35 SILL Accessory #0<Wechaty> constructor()
09:49:35 VERB Wechaty contructor()
09:49:35 VERB StateSwitch constructor(name=Wechaty)
09:49:35 VERB StateSwitch constructor(name=WechatyReady)
09:49:35 SILL Accessory #1<Wechaty> constructor()
09:49:35 VERB Wechaty contructor()
09:49:35 VERB StateSwitch constructor(name=Wechaty)
09:49:35 VERB StateSwitch constructor(name=WechatyReady)
09:49:35 VERB Wechaty on(scan, function) registered
09:49:35 VERB Wechaty onFunction(scan)
09:49:35 VERB Wechaty on(message, function) registered
09:49:35 VERB Wechaty onFunction(message)
09:49:35 VERB Wechaty on(login, function) registered
09:49:35 VERB Wechaty onFunction(login)
09:49:35 VERB Wechaty on(room-join, function) registered
09:49:35 VERB Wechaty onFunction(room-join)
09:49:35 VERB Wechaty on(friendship, function) registered
09:49:35 VERB Wechaty onFunction(friendship)
09:49:35 WARN Wechaty init() DEPRECATED. use start() instead.
09:49:35 SILL Wechaty version() form development environment is not availble: ENOENT: no such file or directory, stat '/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty/dist/.git'
09:49:35 INFO Wechaty <Puppet#0<PuppetPadpro>()/PuppetPadpro#0> start() v0.22.6 is starting...
09:49:35 VERB Wechaty puppet: Puppet#0<PuppetPadpro>()/PuppetPadpro#0
09:49:35 VERB Wechaty profile: bot1
09:49:35 VERB Wechaty id: cjxe0fb3i0000wy7ug82dd4ul
09:49:35 SILL StateSwitch <Wechaty> on() is false
09:49:35 SILL StateSwitch <WechatyReady> off() is true
09:49:35 VERB StateSwitch <WechatyReady> off(true) <- (true)
09:49:35 SILL StateSwitch <Wechaty> on() is false
09:49:35 VERB StateSwitch <Wechaty> on(pending) <- (false)
09:49:35 VERB MemoryCard constructor("bot1")
09:49:35 VERB MemoryCard getStorage() for storage type: N/A
09:49:35 VERB getStorage name: bot1, options: {"type":"file"}
09:49:35 VERB StorageFile constructor(bot1, ...)
09:49:35 VERB StorageBackend constructor(bot1, { type: file })
09:49:35 VERB MemoryCard load() from storage: StorageFile</Users/amoydavid/WebstormProjects/wechat-bot/bot1.memory-card.json>
09:49:35 VERB StorageFile load() from /Users/amoydavid/WebstormProjects/wechat-bot/bot1.memory-card.json
09:49:35 VERB MemoryCard load() file not exist, NOOP
09:49:35 VERB Wechaty on(scan, function) registered
09:49:35 VERB Wechaty onFunction(scan)
09:49:35 VERB Wechaty on(message, function) registered
09:49:35 VERB Wechaty onFunction(message)
09:49:35 VERB Wechaty on(login, function) registered
09:49:35 VERB Wechaty onFunction(login)
09:49:35 VERB Wechaty on(room-join, function) registered
09:49:35 VERB Wechaty onFunction(room-join)
09:49:35 VERB Wechaty on(friendship, function) registered
09:49:35 VERB Wechaty onFunction(friendship)
09:49:35 WARN Wechaty init() DEPRECATED. use start() instead.
09:49:35 SILL Wechaty version() form development environment is not availble: ENOENT: no such file or directory, stat '/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty/dist/.git'
09:49:35 INFO Wechaty <default> start() v0.22.6 is starting...
09:49:35 VERB Wechaty puppet: undefined
09:49:35 VERB Wechaty profile: bot2
09:49:35 VERB Wechaty id: cjxe0fb3j0001wy7uhl420a92
09:49:35 SILL StateSwitch <Wechaty> on() is false
09:49:35 SILL StateSwitch <WechatyReady> off() is true
09:49:35 VERB StateSwitch <WechatyReady> off(true) <- (true)
09:49:35 SILL StateSwitch <Wechaty> on() is false
09:49:35 VERB StateSwitch <Wechaty> on(pending) <- (false)
09:49:35 VERB MemoryCard constructor("bot2")
09:49:35 VERB MemoryCard getStorage() for storage type: N/A
09:49:35 VERB getStorage name: bot2, options: {"type":"file"}
09:49:35 VERB StorageFile constructor(bot2, ...)
09:49:35 VERB StorageBackend constructor(bot2, { type: file })
09:49:35 VERB MemoryCard load() from storage: StorageFile</Users/amoydavid/WebstormProjects/wechat-bot/bot2.memory-card.json>
09:49:35 VERB StorageFile load() from /Users/amoydavid/WebstormProjects/wechat-bot/bot2.memory-card.json
Example app listening on port 3000!
09:49:36 VERB Puppet constructor() memory.load() done
09:49:36 VERB Puppet constructor() memory.load() done
09:49:36 VERB Wechaty initPuppet() Puppet#0<PuppetPadpro>()/PuppetPadpro#0
09:49:36 VERB MemoryCard multiplex(puppet)
09:49:36 VERB MemoryCard static multiplex(MemoryCard<bot1>, puppet)
09:49:36 VERB MemoryCard constructor({"name":"bot1","multiplex":{"name":"puppet","parent":{"options":{"name":"bot1"},"name":"bot1","payload":{},"multiplexNameList":[],"storage":{"name":"bot1","options":{"type":"file"},"absFileName":"/Users/amoydavid/WebstormProjects/wechat-bot/bot1.memory-card.json"}}}})
09:49:36 VERB PuppetManager resolve({wechaty: Wechaty#cjxe0fb3i0000wy7ug82dd4ul<Puppet#0<PuppetPadpro>()/PuppetPadpro#0>(bot1), puppet: Puppet#0<PuppetPadpro>()/PuppetPadpro#0, puppetOptions: undefined})
09:49:36 VERB PuppetManager resolveInstance(Puppet#0<PuppetPadpro>()/PuppetPadpro#0)
09:49:36 VERB Puppet setMemory()
09:49:36 VERB Wechaty initPuppetEventBridge(Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0)
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(friendship) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(login) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(logout) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(message) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(room-invite) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(room-join) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(room-leave) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(room-topic) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(scan) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(dong) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(error) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(ready) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(reset) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(watchdog) registered
09:49:36 VERB Wechaty initAccessory(Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0)
09:49:36 SILL Accessory <Contact> static set wechaty = "Wechaty#cjxe0fb3i0000wy7ug82dd4ul<Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0>(bot1)"
09:49:36 SILL Accessory <ContactSelf> static set wechaty = "Wechaty#cjxe0fb3i0000wy7ug82dd4ul<Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0>(bot1)"
09:49:36 SILL Accessory <Friendship> static set wechaty = "Wechaty#cjxe0fb3i0000wy7ug82dd4ul<Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0>(bot1)"
09:49:36 SILL Accessory <Message> static set wechaty = "Wechaty#cjxe0fb3i0000wy7ug82dd4ul<Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0>(bot1)"
09:49:36 SILL Accessory <Room> static set wechaty = "Wechaty#cjxe0fb3i0000wy7ug82dd4ul<Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0>(bot1)"
09:49:36 SILL Accessory <RoomInvitation> static set wechaty = "Wechaty#cjxe0fb3i0000wy7ug82dd4ul<Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0>(bot1)"
09:49:36 SILL Accessory <Contact> static set puppet = "Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0"
09:49:36 SILL Accessory <ContactSelf> static set puppet = "Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0"
09:49:36 SILL Accessory <Friendship> static set puppet = "Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0"
09:49:36 SILL Accessory <Message> static set puppet = "Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0"
09:49:36 SILL Accessory <Room> static set puppet = "Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0"
09:49:36 SILL Accessory <RoomInvitation> static set puppet = "Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0"
09:49:36 SILL Accessory <Wechaty> set puppet = "Puppet#0<PuppetPadpro>(bot1)/PuppetPadpro#0"
09:49:36 SILL StateSwitch <PuppetPadpro> on() is false
09:49:36 SILL StateSwitch <PuppetPadpro> on() is false
09:49:36 VERB StateSwitch <PuppetPadpro> on(pending) <- (false)
09:49:36 INFO WechatGateway init(puppet_padpro_private_token, padpro.botorange.com:6666, undefined)
09:49:36 SILL StateSwitch <PuppetPadpro> off() is false
09:49:36 VERB Wechaty initPuppet()
09:49:36 VERB MemoryCard multiplex(puppet)
09:49:36 VERB MemoryCard static multiplex(MemoryCard<bot2>, puppet)
09:49:36 VERB MemoryCard constructor({"name":"bot2","multiplex":{"name":"puppet","parent":{"options":{"name":"bot2"},"name":"bot2","payload":{"\rpuppet\nPUPPET_PUPPETEER":[{"name":"MM_WX_NOTIFY_STATE","value":"1","domain":"wx.qq.com","path":"/","expires":-1,"size":19,"httpOnly":false,"secure":false,"session":true},{"name":"wxuin","value":"182219563","domain":".wx.qq.com","path":"/","expires":1561858168,"size":14,"httpOnly":false,"secure":true,"session":false},{"name":"webwx_auth_ticket","value":"____________some-private-things________________________","domain":".wx.qq.com","path":"/","expires":1876958956,"size":205,"httpOnly":false,"secure":true,"session":false},{"name":"mm_lang","value":"en_US","domain":".wx.qq.com","path":"/","expires":1561642603,"size":12,"httpOnly":false,"secure":true,"session":false},{"name":"last_wxuin","value":"182219563","domain":"wx.qq.com","path":"/","expires":1561771756,"size":19,"httpOnly":false,"secure":true,"session":false},{"name":"wxloadtime","value":"1561598956_expired","domain":".wx.qq.com","path":"/","expires":1561642157,"size":28,"httpOnly":false,"secure":true,"session":false},{"name":"login_frequency","value":"1","domain":"wx.qq.com","path":"/","expires":1561771756,"size":16,"httpOnly":false,"secure":true,"session":false},{"name":"webwxuvid","value":"____________some-private-things________________________","domain":".wx.qq.com","path":"/","expires":1876958956,"size":105,"httpOnly":false,"secure":true,"session":false},{"name":"MM_WX_SOUND_STATE","value":"1","domain":"wx.qq.com","path":"/","expires":-1,"size":18,"httpOnly":false,"secure":false,"session":true},{"name":"wxpluginkey","value":"1561593078","domain":".wx.qq.com","path":"/","expires":1561642168,"size":21,"httpOnly":false,"secure":true,"session":false}]},"multiplexNameList":[],"storage":{"name":"bot2","options":{"type":"file"},"absFileName":"/Users/amoydavid/WebstormProjects/wechat-bot/bot2.memory-card.json"}}}})
09:49:36 VERB PuppetManager resolve({wechaty: Wechaty#cjxe0fb3j0001wy7uhl420a92<>(bot2), puppet: default, puppetOptions: undefined})
09:49:36 VERB PuppetManager resolveName(wechaty-puppet-puppeteer)
09:49:36 VERB PuppetManager checkModule(wechaty-puppet-puppeteer)
09:49:36 SILL PuppetManager checkModule() wechaty-puppet-puppeteer installed version 0.14.6 satisfied range ^0.14.1
09:49:36 VERB Puppet constructor({}) #2
09:49:36 VERB StateSwitch constructor(name=PuppetPuppeteer)
09:49:36 VERB MemoryCard constructor(undefined)
09:49:36 VERB MemoryCard getStorage() for storage type: N/A
09:49:36 VERB MemoryCard load() from storage: N/A
09:49:36 VERB MemoryCard load() no storage
09:49:36 VERB Puppet constructor() watchdog timeout set to 60 seconds
09:49:36 VERB HotImport callerResolve(., /Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet/dist/src/puppet.js)
09:49:36 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/hot-import/dist/src/hot-import.js, type=Object
09:49:36 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty-puppet/dist/src/puppet.js, type=null
09:49:36 SILL HotImport callerResolve() callsites() file=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty/node_modules/wechaty-puppet-puppeteer/dist/src/puppet-puppeteer.js, type=null
09:49:36 SILL HotImport callerResolve() callerFile=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty/node_modules/wechaty-puppet-puppeteer/dist/src/puppet-puppeteer.js
09:49:36 VERB Puppet constructor() childClassPath=/Users/amoydavid/WebstormProjects/wechat-bot/node_modules/wechaty/node_modules/wechaty-puppet-puppeteer/dist/src
09:49:36 VERB Puppet constructor() memory.load() done
09:49:36 VERB Puppet setMemory()
09:49:36 VERB Wechaty initPuppetEventBridge(Puppet#2<PuppetPuppeteer>(bot2))
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(friendship) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(login) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(logout) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(message) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(room-invite) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(room-join) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(room-leave) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(room-topic) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(scan) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(dong) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(error) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(ready) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(reset) registered
09:49:36 VERB Wechaty initPuppetEventBridge() puppet.on(watchdog) registered
09:49:36 VERB Wechaty initAccessory(Puppet#2<PuppetPuppeteer>(bot2))
09:49:36 SILL Accessory <Contact> static set wechaty = "Wechaty#cjxe0fb3j0001wy7uhl420a92<>(bot2)"
09:49:36 SILL Accessory <ContactSelf> static set wechaty = "Wechaty#cjxe0fb3j0001wy7uhl420a92<>(bot2)"
09:49:36 SILL Accessory <Friendship> static set wechaty = "Wechaty#cjxe0fb3j0001wy7uhl420a92<>(bot2)"
09:49:36 SILL Accessory <Message> static set wechaty = "Wechaty#cjxe0fb3j0001wy7uhl420a92<>(bot2)"
09:49:36 SILL Accessory <Room> static set wechaty = "Wechaty#cjxe0fb3j0001wy7uhl420a92<>(bot2)"
09:49:36 SILL Accessory <RoomInvitation> static set wechaty = "Wechaty#cjxe0fb3j0001wy7uhl420a92<>(bot2)"
09:49:36 SILL Accessory <Contact> static set puppet = "Puppet#2<PuppetPuppeteer>(bot2)"
09:49:36 SILL Accessory <ContactSelf> static set puppet = "Puppet#2<PuppetPuppeteer>(bot2)"
09:49:36 SILL Accessory <Friendship> static set puppet = "Puppet#2<PuppetPuppeteer>(bot2)"
09:49:36 SILL Accessory <Message> static set puppet = "Puppet#2<PuppetPuppeteer>(bot2)"
09:49:36 SILL Accessory <Room> static set puppet = "Puppet#2<PuppetPuppeteer>(bot2)"
09:49:36 SILL Accessory <RoomInvitation> static set puppet = "Puppet#2<PuppetPuppeteer>(bot2)"
09:49:36 SILL Accessory <Wechaty> set puppet = "Puppet#2<PuppetPuppeteer>(bot2)"
09:49:36 SILL StateSwitch <PuppetPuppeteer> on() is false
09:49:36 VERB StateSwitch <PuppetPuppeteer> on(pending) <- (false)
09:49:36 SILL StateSwitch <PuppetPuppeteer> off() is false
09:49:37 SILL StateSwitch <PuppetPadpro> on() is pending
09:49:37 VERB StateSwitch <PuppetPadpro> on(true) <- (pending)
09:49:37 VERB Wechaty on(heartbeat, function) registered
09:49:37 VERB Wechaty onFunction(heartbeat)
09:49:37 SILL StateSwitch <Wechaty> on() is pending
09:49:37 VERB StateSwitch <Wechaty> on(true) <- (pending)
09:49:37 SILL Wechaty memoryCheck() free: 209 MB, require: 4 MB
09:49:37 VERB MemoryCard <puppet> get(PUPPET_PUPPETEER)
http://weixin.qq.com/x/AdE8nYuw_7icvvyOuNPQ
[0] Scan QR Code in above url to login bot1:
09:49:38 SILL StateSwitch <PuppetPuppeteer> on() is pending
09:49:38 VERB StateSwitch <PuppetPuppeteer> on(true) <- (pending)
09:49:38 VERB Wechaty on(heartbeat, function) registered
09:49:38 VERB Wechaty onFunction(heartbeat)
09:49:38 SILL StateSwitch <Wechaty> on() is pending
09:49:38 VERB StateSwitch <Wechaty> on(true) <- (pending)
09:49:39 VERB MemoryCard <puppet> set(PUPPET_PUPPETEER, [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object])
09:49:39 VERB MemoryCard <bot2> save() to StorageFile</Users/amoydavid/WebstormProjects/wechat-bot/bot2.memory-card.json>
09:49:39 VERB StorageFile save() to /Users/amoydavid/WebstormProjects/wechat-bot/bot2.memory-card.json
09:49:39 SILL Wechaty memoryCheck() free: 138 MB, require: 4 MB
https://login.weixin.qq.com/l/oeB31QClsA==
[0] Scan QR Code in above url to login bot2:
09:49:39 VERB MemoryCard <puppet> set(PUPPET_PUPPETEER, [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object])
09:49:39 VERB MemoryCard <bot2> save() to StorageFile</Users/amoydavid/WebstormProjects/wechat-bot/bot2.memory-card.json>
09:49:39 VERB StorageFile save() to /Users/amoydavid/WebstormProjects/wechat-bot/bot2.memory-card.json
7. Additional context
Add any other context about the problem here.
[bug]