Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.Veneno.
wechaty
提交
8fc74da0
W
wechaty
项目概览
.Veneno.
/
wechaty
与 Fork 源项目一致
Fork自
wechaty / wechaty
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
wechaty
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8fc74da0
编写于
6月 14, 2018
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code clean
上级
845f737a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
42 addition
and
48 deletion
+42
-48
src/puppet-padchat/puppet-padchat.ts
src/puppet-padchat/puppet-padchat.ts
+42
-48
未找到文件。
src/puppet-padchat/puppet-padchat.ts
浏览文件 @
8fc74da0
...
...
@@ -85,34 +85,21 @@ import {
import
{
PadchatManager
,
// resolverDict,
// AutoDataType,
}
from
'
./padchat-manager
'
import
{
// PadchatPayload,
PadchatContactPayload
,
PadchatMessagePayload
,
PadchatRoomPayload
,
// PadchatRoomMemberListPayload,
PadchatRoomMemberPayload
,
PadchatMessageType
,
// PadchatMessageType,
// PadchatContinue,
// PadchatMsgType,
// PadchatStatus,
// PadchatPayloadType,
// PadchatRoomRawMember,
}
from
'
./padchat-schemas
'
import
{
WXSearchContactType
,
WXSearchContactTypeStatus
,
}
from
'
./padchat-rpc.type
'
export
type
PuppetFoodType
=
'
scan
'
|
'
ding
'
export
type
ScanFoodType
=
'
scan
'
|
'
login
'
|
'
logout
'
export
class
PuppetPadchat
extends
Puppet
{
// in seconds, 4 minute for padchat
...
...
@@ -266,15 +253,26 @@ export class PuppetPadchat extends Puppet {
rawPayload
.
msg_type
,
)
/**
*
Sometimes will get several same message from rpc, drop the same message
here.
*
1. Sometimes will get duplicated same messages from rpc, drop the same message from
here.
*/
if
(
this
.
cachePadchatMessagePayload
.
has
(
rawPayload
.
msg_id
))
{
log
.
warn
(
'
PuppetPadchat
'
,
'
onPadchatMessage({id=%s, type=%s(%s)}) duplicate message
'
)
return
}
/**
* 2. Save message for future usage
*/
this
.
cachePadchatMessagePayload
.
set
(
rawPayload
.
msg_id
,
rawPayload
,
)
console
.
log
(
'
rawPayload:
'
,
rawPayload
)
/**
* 3. Check for Different Message Types
*/
switch
(
rawPayload
.
sub_type
)
{
case
PadchatMessageType
.
VerifyMsg
:
this
.
emit
(
'
friendship
'
,
rawPayload
.
msg_id
)
...
...
@@ -287,30 +285,19 @@ export class PuppetPadchat extends Puppet {
*
* { content: '12740017638@chatroom:\n<sysmsg type="delchatroommember">\n\t<delchatroommember>\n\t\t<plain>
* <![CDATA[You invited 卓桓、Zhuohuan, 太阁_传话助手, 桔小秘 to the group chat. ]]></plain>...,
* continue: 1,
* description: '',
* from_user: '12740017638@chatroom',
* msg_id: '232220931339852872',
* msg_source: '',
* msg_type: 5,
* status: 1,
* sub_type: 10002,
* timestamp: 1528831349,
* to_user: 'wxid_zj2cahpwzgie12',
* uin: 324216852 }
* sub_type: 10002}
*/
await
Promise
.
all
([
this
.
onPadchatMessageRoomEvent
(
rawPayload
),
this
.
onPadchatMessageRoomEvent
Join
(
rawPayload
),
])
break
case
PadchatMessageType
.
Sys
:
this
.
cachePadchatMessagePayload
.
set
(
rawPayload
.
msg_id
,
rawPayload
,
)
await
Promise
.
all
([
this
.
onPadchatMessageFriendshipEvent
(
rawPayload
),
this
.
onPadchatMessageRoomEvent
(
rawPayload
),
////////////////////////////////////////////////
this
.
onPadchatMessageRoomEventJoin
(
rawPayload
),
this
.
onPadchatMessageRoomEventLeave
(
rawPayload
),
this
.
onPadchatMessageRoomEventTopic
(
rawPayload
),
])
break
...
...
@@ -320,23 +307,20 @@ export class PuppetPadchat extends Puppet {
case
PadchatMessageType
.
MicroVideo
:
case
PadchatMessageType
.
Video
:
case
PadchatMessageType
.
Voice
:
// TODO: the above types are filel type
// TODO: the above types are filel type
default
:
this
.
cachePadchatMessagePayload
.
set
(
rawPayload
.
msg_id
,
rawPayload
,
)
this
.
emit
(
'
message
'
,
rawPayload
.
msg_id
)
break
}
}
protected
async
onPadchatMessageRoomEvent
(
rawPayload
:
PadchatMessagePayload
):
Promise
<
void
>
{
log
.
verbose
(
'
PuppetPadchat
'
,
'
onPadchatMessageRoomEvent({id=%s})
'
,
rawPayload
.
msg_id
)
/**
* 1. Look for room join event
*/
/**
* Look for room join event
*/
protected
async
onPadchatMessageRoomEventJoin
(
rawPayload
:
PadchatMessagePayload
):
Promise
<
void
>
{
log
.
verbose
(
'
PuppetPadchat
'
,
'
onPadchatMessageRoomEventJoin({id=%s})
'
,
rawPayload
.
msg_id
)
const
roomJoin
=
roomJoinEventMessageParser
(
rawPayload
)
if
(
roomJoin
)
{
const
inviteeNameList
=
roomJoin
.
inviteeNameList
...
...
@@ -386,9 +370,14 @@ export class PuppetPadchat extends Puppet {
this
.
emit
(
'
room-join
'
,
roomId
,
inviteeIdList
,
inviterId
)
}
/**
* 2. Look for room leave event
*/
}
/**
* Look for room leave event
*/
protected
async
onPadchatMessageRoomEventLeave
(
rawPayload
:
PadchatMessagePayload
):
Promise
<
void
>
{
log
.
verbose
(
'
PuppetPadchat
'
,
'
onPadchatMessageRoomEventLeave({id=%s})
'
,
rawPayload
.
msg_id
)
const
roomLeave
=
roomLeaveEventMessageParser
(
rawPayload
)
if
(
roomLeave
)
{
const
leaverNameList
=
roomLeave
.
leaverNameList
...
...
@@ -422,9 +411,14 @@ export class PuppetPadchat extends Puppet {
this
.
emit
(
'
room-leave
'
,
roomId
,
leaverIdList
,
removerId
)
}
/**
* 3. Look for room topic event
*/
}
/**
* Look for room topic event
*/
protected
async
onPadchatMessageRoomEventTopic
(
rawPayload
:
PadchatMessagePayload
):
Promise
<
void
>
{
log
.
verbose
(
'
PuppetPadchat
'
,
'
onPadchatMessageRoomEventTopic({id=%s})
'
,
rawPayload
.
msg_id
)
const
roomTopic
=
roomTopicEventMessageParser
(
rawPayload
)
if
(
roomTopic
)
{
const
changerName
=
roomTopic
.
changerName
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录