Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BillLi
ItChat
提交
9dc75fc9
I
ItChat
项目概览
BillLi
/
ItChat
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
ItChat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9dc75fc9
编写于
2月 25, 2017
作者:
L
LittleCoder
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix long contact fetch bug & new protocol of adding friends
上级
9d67e06a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
14 deletion
+23
-14
itchat/components/contact.py
itchat/components/contact.py
+23
-14
未找到文件。
itchat/components/contact.py
浏览文件 @
9dc75fc9
...
...
@@ -264,19 +264,27 @@ def update_local_uin(core, msg):
def
get_contact
(
self
,
update
=
False
):
if
not
update
:
return
utils
.
contact_deep_copy
(
self
,
self
.
chatroomList
)
url
=
'%s/webwxgetcontact?r=%s&seq=0&skey=%s'
%
(
self
.
loginInfo
[
'url'
],
int
(
time
.
time
()),
self
.
loginInfo
[
'skey'
])
headers
=
{
'ContentType'
:
'application/json; charset=UTF-8'
,
'User-Agent'
:
config
.
USER_AGENT
,
}
try
:
r
=
self
.
s
.
get
(
url
,
headers
=
headers
)
except
:
logger
.
info
(
'Failed to fetch contact, that may because of the amount of your chatrooms'
)
return
[]
tempList
=
json
.
loads
(
r
.
content
.
decode
(
'utf-8'
,
'replace'
))[
'MemberList'
]
def
_get_contact
(
seq
=
0
):
url
=
'%s/webwxgetcontact?r=%s&seq=%s&skey=%s'
%
(
self
.
loginInfo
[
'url'
],
int
(
time
.
time
()),
seq
,
self
.
loginInfo
[
'skey'
])
headers
=
{
'ContentType'
:
'application/json; charset=UTF-8'
,
'User-Agent'
:
config
.
USER_AGENT
,
}
try
:
r
=
self
.
s
.
get
(
url
,
headers
=
headers
)
except
:
logger
.
info
(
'Failed to fetch contact, that may because of the amount of your chatrooms'
)
return
0
,
[]
j
=
json
.
loads
(
r
.
content
.
decode
(
'utf-8'
,
'replace'
))
return
j
.
get
(
'Seq'
,
0
),
j
.
get
(
'MemberList'
)
seq
,
memberList
=
0
,
[]
while
1
:
seq
,
batchMemberList
=
_get_contact
(
seq
)
memberList
.
extend
(
batchMemberList
)
if
seq
==
0
:
break
chatroomList
,
otherList
=
[],
[]
for
m
in
temp
List
:
for
m
in
member
List
:
if
m
[
'Sex'
]
!=
0
:
otherList
.
append
(
m
)
elif
'@@'
in
m
[
'UserName'
]:
...
...
@@ -356,14 +364,15 @@ def add_friend(self, userName, status=2, verifyContent='', autoUpdate=True):
'VerifyUserTicket'
:
''
,
}],
'VerifyContent'
:
verifyContent
,
'SceneListCount'
:
1
,
'SceneList'
:
33
,
# [33]
'SceneList'
:
[
33
],
'skey'
:
self
.
loginInfo
[
'skey'
],
}
headers
=
{
'ContentType'
:
'application/json; charset=UTF-8'
,
'User-Agent'
:
config
.
USER_AGENT
}
r
=
self
.
s
.
post
(
url
,
headers
=
headers
,
data
=
json
.
dumps
(
data
,
ensure_ascii
=
False
).
encode
(
'utf8'
,
'replace'
))
if
autoUpdate
:
self
.
update_friend
(
userName
)
if
autoUpdate
:
self
.
update_friend
(
userName
)
return
ReturnValue
(
rawResponse
=
r
)
def
get_head_img
(
self
,
userName
=
None
,
chatroomUserName
=
None
,
picDir
=
None
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录