提交 1674ba51 编写于 作者: Huan (李卓桓)'s avatar Huan (李卓桓)

half work to enhance message processing...

上级 54770643
......@@ -30,17 +30,16 @@ class Message {
, content: rawObj.MMActualContent // Content has @id prefix added by wx
, status: rawObj.Status
, digest: rawObj.MMDigest
, date: new Date(rawObj.MMDisplayTime*1000)
, date: new Date(rawObj.MMDisplayTime*1000)
, fromContact: Contact.load(rawObj.MMActualSender)
, toContact: Contact.load(rawObj.ToUserName)
, inGroup: rawObj.MMIsChatRoom ? Group.load(rawObj.FromUserName) : null
, fromGroup: rawObj.MMIsChatRoom ? Group.load(rawObj.FromUserName) : null
}
}
toString() {
const name = html2str(this.obj.from.get('name'))
const group = this.obj.inGroup
const group = this.obj.fromGroup
let content = html2str(this.obj.content)
if (content.length > 20) content = content.substring(0,17) + '...';
let groupStr = group ? html2str(group) : ''
......@@ -62,7 +61,7 @@ class Message {
return new Promise((resolve, reject) => {
this.obj.fromContact.ready() // Contact from
.then(r => this.obj.toContact.ready()) // Contact to
.then(r => this.obj.inGroup && this.obj.inGroup.ready()) // Group member list
.then(r => this.obj.fromGroup && this.obj.fromGroup.ready()) // Group member list
.then(r => resolve(this)) // RESOLVE
.catch(e => { // REJECT
log.error('Message', 'ready() rejected:' + e)
......@@ -71,7 +70,7 @@ class Message {
})
}
inGroup() { return !!(this.obj.group) }
fromGroup() { return !!(this.obj.fromGroup) }
get(prop) {
if (!prop || !(prop in this.obj)) {
......
......@@ -29,14 +29,19 @@ class PuppetWeb extends Puppet {
options = options || {}
this.port = options.port || 8788 // W(87) X(88), ascii char code ;-]
this.head = options.head
this.logined = false
this.user = null
}
toString() { return `Class PuppetWeb({browser:${this.browser},port:${this.port}})` }
init() {
this.logined = false
this.on('login' , () => this.logined = true)
this.on('logout', () => this.logined = false)
this.on('login' , e => {
this.logined = true
// TODO: save currentUser to this.user as a Contact
})
this.on('logout', e => this.logined = false)
this.userId = null
......@@ -55,7 +60,7 @@ class PuppetWeb extends Puppet {
].map(event =>
this.server.on(event, data => this.emit(event, data))
)
this.server.on('message', data => this.forwardMessage(data))
this.server.on('message', data => this.recvMessage(data))
/**
* `unload` event is sent from js@browser to webserver via socketio
* after received `unload`, we re-inject the Wechaty js code into browser.
......@@ -81,10 +86,16 @@ class PuppetWeb extends Puppet {
return this.browser.init()
}
forwardMessage(data) {
recvMessage(data) {
const m = new Message(data)
if (!this.user) {
log.warn('PuppetWeb', 'recvMessage() without this.user')
return
}
const fromId = m.get('from')
if (this.userId)
if (fromId==this.user.id) {
return
}
this.emit('message', m)
}
send(message) {
......@@ -146,9 +157,9 @@ class PuppetWeb extends Puppet {
* Public Methods
*
*/
getLoginQrImgUrl() {
getLoginQrImgUrl() {
log.silly('PuppetWeb', 'getLoginQrImgUrl()')
return this.proxyWechaty('getLoginQrImgUrl')
return this.proxyWechaty('getLoginQrImgUrl')
}
getLoginStatusCode() { return this.proxyWechaty('getLoginStatusCode') }
getContact(id) { return this.proxyWechaty('getContact', id) }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册