Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wechaty
wechaty
提交
467b53e9
W
wechaty
项目概览
wechaty
/
wechaty
上一次同步 大约 3 年
通知
304
Star
10499
Fork
6
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
152
列表
看板
标记
里程碑
合并请求
1
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
wechaty
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
152
Issue
152
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
467b53e9
编写于
12月 08, 2016
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add more contact methods: gender(), city(), provionce(), avatar()
#121
上级
e08411e9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
46 addition
and
12 deletion
+46
-12
src/contact.ts
src/contact.ts
+46
-12
未找到文件。
src/contact.ts
浏览文件 @
467b53e9
...
...
@@ -9,11 +9,12 @@
import
{
Config
,
Sayable
}
from
'
./config
'
import
{
Message
}
from
'
./message
'
import
{
UtilLib
}
from
'
./util-lib
'
import
{
Wechaty
}
from
'
./wechaty
'
import
{
log
}
from
'
./brolog-env
'
}
from
'
./config
'
import
{
Message
}
from
'
./message
'
import
{
PuppetWeb
}
from
'
./puppet-web
'
import
{
UtilLib
}
from
'
./util-lib
'
import
{
Wechaty
}
from
'
./wechaty
'
import
{
log
}
from
'
./brolog-env
'
type
ContactObj
=
{
address
:
string
...
...
@@ -22,12 +23,13 @@ type ContactObj = {
name
:
string
province
:
string
remark
:
string
|
null
sex
:
string
sex
:
Gender
signature
:
string
star
:
boolean
stranger
:
boolean
uin
:
string
weixin
:
string
avatar
:
string
// XXX URL of HeadImgUrl
}
export
type
ContactRawObj
=
{
...
...
@@ -36,15 +38,22 @@ export type ContactRawObj = {
NickName
:
string
Province
:
string
RemarkName
:
string
Sex
:
string
Sex
:
Gender
Signature
:
string
StarFriend
:
string
Uin
:
string
UserName
:
string
HeadImgUrl
:
string
stranger
:
string
// assign by injectio.js
}
export
enum
Gender
{
Unknown
=
0
,
Male
=
1
,
Female
=
2
,
}
export
type
ContactQueryFilter
=
{
name
:
string
|
RegExp
}
...
...
@@ -93,15 +102,40 @@ export class Contact implements Sayable {
,
star
:
!!
rawObj
.
StarFriend
,
stranger
:
!!
rawObj
.
stranger
// assign by injectio.js
,
avatar
:
rawObj
.
HeadImgUrl
}
}
public
weixin
()
{
return
this
.
obj
&&
this
.
obj
.
weixin
||
''
}
public
name
()
{
return
UtilLib
.
plainText
(
this
.
obj
&&
this
.
obj
.
name
||
''
)
}
public
stranger
()
{
return
this
.
obj
&&
this
.
obj
.
stranger
}
public
star
()
{
return
this
.
obj
&&
this
.
obj
.
star
}
public
weixin
()
{
return
this
.
obj
&&
this
.
obj
.
weixin
||
''
}
public
name
()
{
return
UtilLib
.
plainText
(
this
.
obj
&&
this
.
obj
.
name
||
''
)
}
public
stranger
()
{
return
this
.
obj
&&
this
.
obj
.
stranger
}
public
star
()
{
return
this
.
obj
&&
this
.
obj
.
star
}
/**
* Contact gender
* @return Gender.Male(2) | Gender.Femail(1) | Gender.Unknown(0)
*/
public
gender
()
{
return
this
.
obj
?
this
.
obj
.
sex
:
Gender
.
Unknown
}
public
province
()
{
return
this
.
obj
&&
this
.
obj
.
province
}
public
city
()
{
return
this
.
obj
&&
this
.
obj
.
city
}
/**
* Get avatar picture file stream
*/
public
async
avatar
():
Promise
<
NodeJS
.
ReadableStream
>
{
if
(
!
this
.
obj
||
!
this
.
obj
.
avatar
)
{
throw
new
Error
(
'
Can not get avatar: not ready
'
)
}
try
{
const
cookies
=
await
(
Config
.
puppetInstance
()
as
PuppetWeb
).
browser
.
readCookie
()
return
UtilLib
.
urlStream
(
this
.
obj
.
avatar
,
cookies
)
}
catch
(
e
)
{
log
.
warn
(
'
Contact
'
,
'
avatar() exception: %s
'
,
e
.
stack
)
throw
e
}
}
public
get
(
prop
)
{
return
this
.
obj
&&
this
.
obj
[
prop
]
}
public
get
(
prop
)
{
return
this
.
obj
&&
this
.
obj
[
prop
]
}
public
isReady
():
boolean
{
return
!!
(
this
.
obj
&&
this
.
obj
.
id
&&
this
.
obj
.
name
!==
undefined
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录