Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

当用户昵称中含有表情时,无法触发room-join 事件 #64

Closed
lijiarui opened this issue Oct 26, 2016 · 5 comments
Closed

当用户昵称中含有表情时,无法触发room-join 事件 #64

lijiarui opened this issue Oct 26, 2016 · 5 comments
Labels

Comments

@lijiarui
Copy link
Member

lijiarui commented Oct 26, 2016

Run npm run doctor and paste the output here

Wechaty Doctor

  1. Wechaty version: #git[32234c2 fix sloc file glob bug in win32]
  2. Darwin x64 version 15.6.0 memory 24/4096 MB
  3. Docker: false

Expected behavior

当用户昵称中含有表情的时候,该修改群名称,可以触发room-topic 事件。并将群名称改回来。
用户昵称为:李佳芮😂
代码如下:

.on('room-topic',  async function(this, room, topic, oldTopic, changer) {
  try {
    log.info('Bot', 'EVENT: room-topic - Room %s change topic  to %s by member %s'
                  , oldTopic
                  , topic
                  , changer.name()
                )

const user = bot.user()
const user_id = user.id
if (!user) {
  throw new Error('no user')
}

if(user_id !== changer.id){
  room.say("@" + changer.name() + "  " + RoomNoChangeTopic)  
  room.topic(String(oldTopic))   
}


  } catch (e) {
    log.error('Bot', 'room-topic event exception: %s', e.stack)
  }

  return
})

Actual behavior

当用户昵称中含有表情的时候,修改昵称后。无法出发room-join事件

Steps to reproduce the behavior (and fixes, if any)

Paste the full output logs here with WECHATY_LOG=silly set

当用户昵称含有表情时候的contact日志:
Contact {
  id: '@0578030b97ba8e15b0a489f1c5cf9326',
  rawObj: 
   { '$$hashKey': '01X',
     Alias: 'ruirui_0914',
     AppAccountFlag: 0,
     AttrStatus: 100455,
     ChatRoomId: 0,
     City: '海淀',
     ContactFlag: 3,
     DisplayName: '',
     EncryChatRoomId: '0',
     HeadImgUrl: '/cgi-bin/mmwebwx-bin/webwxgeticon?seq=635310315&username=@0578030b97ba8e15b0a489f1c5cf9326&skey=',
     HideInputBarFlag: 0,
     KeyWord: 'qq5',
     MMFromBatchGet: true,
     MMFromBatchget: true,
     MMOrderSymbol: 'LIJIARUISPANCLASSEMOJIEMOJI1F602SPAN',
     MemberCount: 0,
     MemberList: [],
     NickName: '李佳芮<img class="emoji emoji1f602" text="_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />',
     OwnerUin: 0,
     PYInitial: 'LJRSPANCLASSEMOJIEMOJI1F602SPAN',
     PYQuanPin: 'lijiaruispanclassemojiemoji1f602span',
     Province: '北京',
     RemarkName: '',
     RemarkPYInitial: '',
     RemarkPYQuanPin: '',
     Sex: 2,
     Signature: '回山洞里',
     SnsFlag: 49,
     StarFriend: 0,
     Statues: 0,
     Uin: 0,
     UniFriend: 0,
     UserName: '@0578030b97ba8e15b0a489f1c5cf9326',
     VerifyFlag: 0,
     _h: 50,
     _index: 9,
     _offsetTop: 320,
     stranger: false },
  obj: 
   { id: '@0578030b97ba8e15b0a489f1c5cf9326',
     uin: 0,
     weixin: 'ruirui_0914',
     name: '李佳芮<img class="emoji emoji1f602" text="_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />',
     remark: '',
     sex: 2,
     province: '北京',
     city: '海淀',
     signature: '回山洞里',
     address: 'ruirui_0914',
     star: false,
     stranger: false } }

修改群名称后的日志内容:

SILL Room member() check nickMap: {"@a793fa0ff9106bcc64051770987e4562e52949f6bb5715ac2dc87c622de10413":"桔子<span class=\"emoji emoji1f633\"></span>","@1a1c49763374bfe5de31218e28c57979":"李卓桓","@0578030b97ba8e15b0a489f1c5cf9326":"李佳芮<span class=\"emoji emoji1f602\"></span>"}
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [45] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 82 MB, require: 64 MB
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 19 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof  ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@51e8f28fd56097716dc676a55ed443eb228cdbef9667e9038cbd47265ba2bf71) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(李佳芮<img class="emoji emoji1f602" text="_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />)
SILL Room member() check nickMap: {"@a793fa0ff9106bcc64051770987e4562e52949f6bb5715ac2dc87c622de10413":"桔子<span class=\"emoji emoji1f633\"></span>","@1a1c49763374bfe5de31218e28c57979":"李卓桓","@0578030b97ba8e15b0a489f1c5cf9326":"李佳芮<span class=\"emoji emoji1f602\"></span>"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 20 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof  ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@51e8f28fd56097716dc676a55ed443eb228cdbef9667e9038cbd47265ba2bf71) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(李佳芮<img class="emoji emoji1f602" text="_web" src="/zh_CN/htmledition/v2/images/spacer.gif" />)
SILL Room member() check nickMap: {"@a793fa0ff9106bcc64051770987e4562e52949f6bb5715ac2dc87c622de10413":"桔子<span class=\"emoji emoji1f633\"></span>","@1a1c49763374bfe5de31218e28c57979":"李卓桓","@0578030b97ba8e15b0a489f1c5cf9326":"李佳芮<span class=\"emoji emoji1f602\"></span>"}
SILL PuppetWebFirer fireRoomJoin() reject() inviteeContactList: , inviterContact: 你
SILL Contact ready()
SILL Room ready()
————————————————
VERB Room say(欢迎 入群, )
SILL Message constructor() SN:16
SILL PuppetWeb send() destination: testjuzi, content: 欢迎 入群)
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof  ... ")
SILL StateMonitor Browser.state.target() is open
@lijiarui
Copy link
Member Author

lijiarui commented Oct 26, 2016

第一次是iphone的表情昵称拉人(web中不显示表情)
跌二次是安卓的表情昵称拉人(web中显示表情)

Show Logs

SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [46] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 27 MB, require: 64 MB
WARN PuppetWebWatchdog memoryCheck() memory not enough: free 27 < require 64 MB
INFO Bot error: Error: memory not enough: free 27 < require 64 MB
SILL Message constructor() SN:2
SILL Message ready()
SILL Contact constructor(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5)
SILL Room constructor(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5)
SILL Contact ready()
SILL Contact get contact via PuppetWeb
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Contact contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready()
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact constructor(@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad)
SILL Contact constructor(@470978fe0cb9153af730ca658576a021)
SILL Contact constructor(@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1)
SILL Contact ready(function)
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL Contact ready(function)
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL Contact ready(function)
SILL Contact ready(function)
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Contact contactGetter(@470978fe0cb9153af730ca658576a021) resolved
SILL Contact contactGetter(@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1) resolved
SILL Contact contactGetter(@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad) resolved
VERB PuppetWebFirer checkRoomJoin(你邀请"wuli舞哩客服"加入了群聊)
SILL PuppetWebFirer fireRoomJoin() inviteeList: wuli舞哩客服, inviter: 你
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 1 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
VERB PuppetWebFirer fireRoomLeave(你邀请"wuli舞哩客服"加入了群聊)
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(wuli舞哩客服)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL Contact ready()
SILL PuppetWebFirer fireRoomJoin() resolve() inviteeContactList: wuli舞哩客服, inviterContact: 李佳芮[流汗]
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
————————————————
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
WARN Message DEPRECATED get()
WARN Message DEPRECATED get()
WARN Wechaty self() method deprecated. use Message.self() instead
WARN PuppetWeb DEPRECATED self() method. use Message.self() instead
SILL Room ready()
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
INFO Bot 刷新群消息
Message {
rawObj:
{ MsgId: '2338995457907144788',
FromUserName: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5',
ToUserName: '@3df3f81de7c2e77f5518a3f6dfa65aaa',
MsgType: 10000,
Content: '你邀请"wuli舞哩客服"加入了群聊',
Status: 3,
ImgStatus: 1,
CreateTime: 1477500220,
VoiceLength: 0,
PlayLength: 0,
FileName: '',
FileSize: '',
MediaId: '',
Url: '',
AppMsgType: 0,
StatusNotifyCode: 0,
StatusNotifyUserName: '',
RecommendInfo:
{ UserName: '',
NickName: '',
QQNum: 0,
Province: '',
City: '',
Content: '',
Signature: '',
Alias: '',
Scene: 0,
VerifyFlag: 0,
AttrStatus: 0,
Sex: 0,
Ticket: '',
OpCode: 0 },
ForwardFlag: 0,
AppInfo: { AppID: '', Type: 0 },
HasProductId: 0,
Ticket: '',
ImgHeight: 0,
ImgWidth: 0,
SubMsgType: 0,
NewMsgId: 2338995457907144700,
MMPeerUserName: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5',
MMDigest: '你邀请"wuli舞哩客服"加入了群聊',
MMIsSend: false,
MMIsChatRoom: true,
LocalID: '2338995457907144788',
ClientMsgId: '2338995457907144788',
MMActualContent: '你邀请"wuli舞哩客服"加入了群聊',
MMActualSender: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5',
MMDigestTime: '0:43',
MMDisplayTime: 1477500220,
MMTime: '0:43' },
obj:
{ id: '2338995457907144788',
type: 10000,
from: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5',
to: '@3df3f81de7c2e77f5518a3f6dfa65aaa',
content: '你邀请"wuli舞哩客服"加入了群聊',
status: 3,
digest: '你邀请"wuli舞哩客服"加入了群聊',
date: 1477500220,
room: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5' },
_counter: 2,
id: '2338995457907144788' }
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [46] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 70 MB, require: 64 MB
VERB Room say(欢迎 @Wuli舞哩客服 入群, )
SILL Message constructor() SN:3
SILL PuppetWeb send() destination: testjuzbb, content: 欢迎 @Wuli舞哩客服 入群)
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Message constructor() SN:4
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
WARN Message DEPRECATED get()
WARN Message DEPRECATED get()
WARN Wechaty self() method deprecated. use Message.self() instead
WARN PuppetWeb DEPRECATED self() method. use Message.self() instead
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [45] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 73 MB, require: 64 MB

SILL Message constructor() SN:5
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
VERB PuppetWebFirer checkRoomJoin("桔子"邀请"桔子秘小姐"加入了群聊)
SILL PuppetWebFirer fireRoomJoin() inviteeList: 桔子秘小姐, inviter: 桔子
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 1 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
VERB PuppetWebFirer fireRoomLeave("桔子"邀请"桔子秘小姐"加入了群聊)
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
VERB Room member(桔子)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
WARN Message DEPRECATED get()
WARN Message DEPRECATED get()
WARN Wechaty self() method deprecated. use Message.self() instead
WARN PuppetWeb DEPRECATED self() method. use Message.self() instead
SILL Room ready()
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
INFO Bot 刷新群消息
Message {
rawObj:
{ MsgId: '1951476041526222478',
FromUserName: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5',
ToUserName: '@3df3f81de7c2e77f5518a3f6dfa65aaa',
MsgType: 10000,
Content: '"桔子"邀请"桔子秘小姐"加入了群聊',
Status: 4,
ImgStatus: 1,
CreateTime: 1477500259,
VoiceLength: 0,
PlayLength: 0,
FileName: '',
FileSize: '',
MediaId: '',
Url: '',
AppMsgType: 0,
StatusNotifyCode: 0,
StatusNotifyUserName: '',
RecommendInfo:
{ UserName: '',
NickName: '',
QQNum: 0,
Province: '',
City: '',
Content: '',
Signature: '',
Alias: '',
Scene: 0,
VerifyFlag: 0,
AttrStatus: 0,
Sex: 0,
Ticket: '',
OpCode: 0 },
ForwardFlag: 0,
AppInfo: { AppID: '', Type: 0 },
HasProductId: 0,
Ticket: '',
ImgHeight: 0,
ImgWidth: 0,
SubMsgType: 0,
NewMsgId: 1951476041526222600,
MMPeerUserName: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5',
MMDigest: '"桔子"邀请"桔子秘小姐"加入了群聊',
MMIsSend: false,
MMIsChatRoom: true,
LocalID: '1951476041526222478',
ClientMsgId: '1951476041526222478',
MMActualContent: '"桔子"邀请"桔子秘小姐"加入了群聊',
MMActualSender: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5',
MMDigestTime: '0:44',
MMDisplayTime: 1477500220,
MMTime: '' },
obj:
{ id: '1951476041526222478',
type: 10000,
from: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5',
to: '@3df3f81de7c2e77f5518a3f6dfa65aaa',
content: '"桔子"邀请"桔子秘小姐"加入了群聊',
status: 4,
digest: '"桔子"邀请"桔子秘小姐"加入了群聊',
date: 1477500220,
room: '@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5' },
_counter: 5,
id: '1951476041526222478' }
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 2 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 3 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 4 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 5 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 6 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 7 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 8 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [46] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 79 MB, require: 64 MB
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 9 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 10 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 11 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 12 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 13 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [45] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 76 MB, require: 64 MB
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 14 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 15 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 16 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [45] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 76 MB, require: 64 MB
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 17 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 18 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 19 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [45] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 74 MB, require: 64 MB
SILL PuppetWebFirer fireRoomJoin() retryPromise() attempt 20 with timeout 60000
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Room contactGetter(@@3ffaea3cf09f20ed036d2741906c877a8438cc65f49a386c8a5c253455f569b5) resolved
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
SILL Contact ready(function)
VERB Room member(桔子秘小姐)
SILL Room member() check nickMap: {"@43e7838b69e4dfcb7b9a77de52205f7120742f65bc67289868b347bfcd5eb6ad":"桔子<emoji code="emoji1f633"/>","@470978fe0cb9153af730ca658576a021":"李卓桓","@3df3f81de7c2e77f5518a3f6dfa65aaa":"李佳芮<emoji code="emoji1f633"/>[流汗]","@2c2ced17246c5ff4cf9beaadbdfbd7bc9beb4216ef28c7d34353a02b3a899dc1":"wuli舞哩客服"}
SILL PuppetWebFirer fireRoomJoin() reject() inviteeContactList: , inviterContact: 桔子
SILL Contact ready()
SILL Room ready()
————————————————
VERB Room say(欢迎 入群, )
SILL Message constructor() SN:6
SILL PuppetWeb send() destination: testjuzbb, content: 欢迎 入群)
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Message constructor() SN:7
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
SILL Message ready()
SILL Contact ready()
SILL Contact ready()
SILL Room ready()
WARN Message DEPRECATED get()
WARN Message DEPRECATED get()
WARN Wechaty self() method deprecated. use Message.self() instead
WARN PuppetWeb DEPRECATED self() method. use Message.self() instead
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [45] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 70 MB, require: 64 MB
SILL PuppetWebEvent onServerDing(heartbeat@browser)
SILL PuppetWebWatchdog onFeed: 60000, HEARTBEAT:[heartbeat@browser]
SILL StateMonitor Puppet.state.current() is live
SILL PuppetWebWatchdog clearWatchDogTimer() [45] seconds left
SILL PuppetWebWatchdog setWatchDogTimer(60000, HEARTBEAT:[heartbeat@browser])
SILL PuppetWebWatchdog monitorScan(HEARTBEAT)
SILL PuppetWebWatchdog autoSaveSession()
SILL PuppetWebWatchdog memoryCheck() free: 69 MB, require: 64 MB
SILL Message constructor() SN:8
SILL Message ready()
SILL Contact constructor(@767f27f8014c1948b292412f63e237dcd38eb16c0c5139f0c5d5e56fa20fc632)
SILL Room constructor(@@49209338d6ec9311a2092c73d294b342286c45c1efadf833bd882066847d7970)
SILL Contact ready()
SILL Contact get contact via PuppetWeb
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL Message constructor() SN:9
SILL Message ready()
SILL Contact ready()
SILL Contact get contact via PuppetWeb
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL Contact contactGetter(@767f27f8014c1948b292412f63e237dcd38eb16c0c5139f0c5d5e56fa20fc632) resolved
SILL Contact ready()
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL Contact contactGetter(@767f27f8014c1948b292412f63e237dcd38eb16c0c5139f0c5d5e56fa20fc632) resolved
SILL Contact ready()
SILL Room ready()
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")
SILL StateMonitor Browser.state.target() is open
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof ... ")

@huan huan added the bug label Oct 26, 2016
@huan
Copy link
Member

huan commented Oct 28, 2016

this bug is related to the wechat security policy:

  1. there is no unique id for user inside wechat web version (between sessions)
  2. we only can match user by their username
  3. when a user join room, we got a sys message 'A' include username 'nameA'
  4. in order to find user of 'nameA', we have to match the names in the chat room, or contacts.
    1. there is a 'nameB' inside room 'memberList'
    2. and a 'nameC' inside contacts.

unfortunately, if a user put emoji inside their name, then any 2 of the 3 names A B C will be not equal.

even worse, in some sys message, wechat web version will strip the emoji.

for the above reason, the only way to fix this, is totally ignore all the emoji in user name.

@huan
Copy link
Member

huan commented Oct 31, 2016

@lijiarui could you try the latest code again to confirm if the bug is fixed? thanks

@huan huan closed this as completed Nov 2, 2016
@sinofool
Copy link

I think ignore all emoji characters is not a good solution.
Is it better to have a different field with the original/unified value for display?

@huan
Copy link
Member

huan commented Jan 14, 2017

@sinofool This proposal is reasonable and acceptable.

Could you create a new issue to discuss this?

@huan huan changed the title 当用户昵称中含有表情时,无法出发room-join 事件 当用户昵称中含有表情时,无法触发room-join 事件 Jan 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants