Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.www.
wechaty
提交
d8a1f511
W
wechaty
项目概览
.www.
/
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,发现更多精彩内容 >>
提交
d8a1f511
编写于
5月 25, 2018
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactoring RoomPayload to use id instead of the instance
上级
910434da
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
41 addition
and
26 deletion
+41
-26
src/puppet-mock/puppet-mock.ts
src/puppet-mock/puppet-mock.ts
+1
-1
src/puppet-puppeteer/puppet-puppeteer.ts
src/puppet-puppeteer/puppet-puppeteer.ts
+1
-1
src/room.ts
src/room.ts
+39
-24
未找到文件。
src/puppet-mock/puppet-mock.ts
浏览文件 @
d8a1f511
...
...
@@ -255,7 +255,7 @@ export class PuppetMock extends Puppet {
const
payload
:
RoomPayload
=
{
topic
:
'
mock topic
'
,
member
List
:
[],
member
IdList
:
[],
nameMap
:
{}
as
any
,
roomAliasMap
:
{}
as
any
,
contactAliasMap
:
{}
as
any
,
...
...
src/puppet-puppeteer/puppet-puppeteer.ts
浏览文件 @
d8a1f511
...
...
@@ -835,7 +835,7 @@ export class PuppetPuppeteer extends Puppet {
// encryId: rawPayload.EncryChatRoomId, // ???
topic
:
Misc
.
plainText
(
rawPayload
.
NickName
||
''
),
// ownerUin: rawPayload.OwnerUin,
member
List
,
member
IdList
:
memberList
.
map
(
c
=>
c
.
id
)
,
nameMap
,
roomAliasMap
,
...
...
src/room.ts
浏览文件 @
d8a1f511
...
...
@@ -57,9 +57,9 @@ export interface RoomQueryFilter {
export
interface
RoomPayload
{
// id: string,
// encryId: string,
topic
:
string
,
member
List
:
Contact
[],
owner
?:
Contact
,
topic
:
string
,
member
IdList
:
string
[],
owner
Id
?
:
string
,
nameMap
:
Map
<
string
,
string
>
,
roomAliasMap
:
Map
<
string
,
string
>
,
...
...
@@ -173,11 +173,10 @@ export class Room extends PuppetAccessory implements Sayable {
* @private
* About the Generic: https://stackoverflow.com/q/43003970/1123955
*/
public
static
load
<
T
extends
typeof
Room
>
(
this
:
T
,
id
:
string
):
T
[
'
prototype
'
]
{
if
(
!
id
)
{
throw
new
Error
(
'
no id
'
)
}
public
static
load
<
T
extends
typeof
Room
>
(
this
:
T
,
id
:
string
,
):
T
[
'
prototype
'
]
{
if
(
!
this
.
pool
)
{
this
.
pool
=
new
Map
<
string
,
Room
>
()
}
...
...
@@ -192,6 +191,15 @@ export class Room extends PuppetAccessory implements Sayable {
return
newRoom
}
// public load(
// this : Room,
// id : string,
// ): Room {
// const klass = instanceToClass(this, Room)
// const room = klass.load(id)
// return room
// }
/**
*
*
...
...
@@ -250,9 +258,9 @@ export class Room extends PuppetAccessory implements Sayable {
const
payload
=
await
this
.
puppet
.
roomPayload
(
this
.
id
)
await
Promise
.
all
(
payload
.
member
List
.
map
(
contact
=>
contact
.
ready
(),
),
payload
.
member
IdList
.
map
(
id
=>
this
.
puppet
.
Contact
.
load
(
id
))
.
map
(
contact
=>
contact
.
ready
()
),
)
log
.
silly
(
'
Room
'
,
'
ready() this.payload="%s"
'
,
util
.
inspect
(
payload
),
...
...
@@ -265,7 +273,7 @@ export class Room extends PuppetAccessory implements Sayable {
* @private
*/
public
isReady
():
boolean
{
return
!!
(
this
.
payload
&&
this
.
payload
.
member
List
&&
this
.
payload
.
member
List
.
length
)
return
!!
(
this
.
payload
&&
this
.
payload
.
member
IdList
&&
this
.
payload
.
memberId
List
.
length
)
}
public
say
(
text
:
string
)
:
Promise
<
void
>
...
...
@@ -453,11 +461,11 @@ export class Room extends PuppetAccessory implements Sayable {
private
delLocal
(
contact
:
Contact
):
void
{
log
.
verbose
(
'
Room
'
,
'
delLocal(%s)
'
,
contact
)
const
member
List
=
this
.
payload
&&
this
.
payload
.
member
List
if
(
member
List
&&
member
List
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
memberList
.
length
;
i
++
)
{
if
(
member
List
[
i
].
id
===
contact
.
id
)
{
memberList
.
splice
(
i
,
1
)
const
member
IdList
=
this
.
payload
&&
this
.
payload
.
memberId
List
if
(
member
IdList
&&
memberId
List
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
member
Id
List
.
length
;
i
++
)
{
if
(
member
IdList
[
i
]
===
contact
.
id
)
{
member
Id
List
.
splice
(
i
,
1
)
break
}
}
...
...
@@ -581,11 +589,11 @@ export class Room extends PuppetAccessory implements Sayable {
* }
*/
public
has
(
contact
:
Contact
):
boolean
{
if
(
!
this
.
payload
||
!
this
.
payload
.
memberList
)
{
if
(
!
this
.
payload
||
!
this
.
payload
.
member
Id
List
)
{
return
false
}
return
this
.
payload
.
memberList
.
filter
(
c
=>
c
.
id
===
contact
.
id
)
return
this
.
payload
.
member
Id
List
.
filter
(
id
=>
id
===
contact
.
id
)
.
length
>
0
}
...
...
@@ -637,7 +645,7 @@ export class Room extends PuppetAccessory implements Sayable {
throw
new
Error
(
'
Room member find queryArg only support one key. multi key support is not availble now.
'
)
}
if
(
!
this
.
payload
||
!
this
.
payload
.
memberList
)
{
if
(
!
this
.
payload
||
!
this
.
payload
.
member
Id
List
)
{
log
.
warn
(
'
Room
'
,
'
member() not ready
'
)
return
[]
}
...
...
@@ -738,7 +746,7 @@ export class Room extends PuppetAccessory implements Sayable {
public
memberList
():
Contact
[]
{
log
.
verbose
(
'
Room
'
,
'
memberList
'
)
if
(
!
this
.
payload
||
!
this
.
payload
.
member
List
||
this
.
payload
.
member
List
.
length
<
1
)
{
if
(
!
this
.
payload
||
!
this
.
payload
.
member
IdList
||
this
.
payload
.
memberId
List
.
length
<
1
)
{
log
.
warn
(
'
Room
'
,
'
memberList() not ready
'
)
log
.
verbose
(
'
Room
'
,
'
memberList() trying call refresh() to update
'
)
this
.
sync
().
then
(()
=>
{
...
...
@@ -746,7 +754,8 @@ export class Room extends PuppetAccessory implements Sayable {
})
return
[]
}
return
this
.
payload
.
memberList
const
memberList
=
this
.
payload
.
memberIdList
.
map
(
id
=>
this
.
puppet
.
Contact
.
load
(
id
))
return
memberList
}
/**
...
...
@@ -782,7 +791,13 @@ export class Room extends PuppetAccessory implements Sayable {
public
owner
():
Contact
|
null
{
log
.
info
(
'
Room
'
,
'
owner()
'
)
return
this
.
payload
&&
this
.
payload
.
owner
||
null
const
ownerId
=
this
.
payload
&&
this
.
payload
.
ownerId
if
(
!
ownerId
)
{
return
null
}
const
owner
=
this
.
puppet
.
Contact
.
load
(
ownerId
)
return
owner
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录