Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.Veneno.
wechaty
提交
acb562db
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,发现更多精彩内容 >>
提交
acb562db
编写于
10月 01, 2016
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#32
add Room.modTopic
上级
99ca26f9
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
89 addition
and
10 deletion
+89
-10
src/puppet-web/bridge.js
src/puppet-web/bridge.js
+23
-0
src/puppet-web/browser.js
src/puppet-web/browser.js
+4
-4
src/puppet-web/puppet-web.js
src/puppet-web/puppet-web.js
+11
-0
src/puppet-web/wechaty-bro.js
src/puppet-web/wechaty-bro.js
+8
-2
src/room.js
src/room.js
+43
-4
未找到文件。
src/puppet-web/bridge.js
浏览文件 @
acb562db
...
...
@@ -152,6 +152,10 @@ class Bridge {
}
roomDelMember
(
roomId
,
contactId
)
{
if
(
!
roomId
||
!
contactId
)
{
throw
new
Error
(
'
no roomId or contactId
'
)
}
return
this
.
proxyWechaty
(
'
roomDelMember
'
,
roomId
,
contactId
)
.
catch
(
e
=>
{
log
.
error
(
'
PuppetWebBridge
'
,
'
roomDelMember(%s, %s) exception: %s
'
,
roomId
,
contactId
,
e
.
message
)
...
...
@@ -160,6 +164,9 @@ class Bridge {
}
roomAddMember
(
roomId
,
contactId
)
{
if
(
!
roomId
||
!
contactId
)
{
throw
new
Error
(
'
no roomId or contactId
'
)
}
return
this
.
proxyWechaty
(
'
roomAddMember
'
,
roomId
,
contactId
)
.
catch
(
e
=>
{
log
.
error
(
'
PuppetWebBridge
'
,
'
roomAddMember(%s, %s) exception: %s
'
,
roomId
,
contactId
,
e
.
message
)
...
...
@@ -167,7 +174,23 @@ class Bridge {
})
}
roomModTopic
(
roomId
,
topic
)
{
if
(
!
roomId
)
{
throw
new
Error
(
'
no roomId
'
)
}
return
this
.
proxyWechaty
(
'
roomModTopic
'
,
roomId
,
topic
)
.
catch
(
e
=>
{
log
.
error
(
'
PuppetWebBridge
'
,
'
roomModTopic(%s, %s) exception: %s
'
,
roomId
,
topic
,
e
.
message
)
throw
e
})
}
roomCreate
(
contactIdList
)
{
if
(
!
contactIdList
||
!
Array
.
isArray
(
contactIdList
))
{
throw
new
Error
(
'
no valid contactIdList
'
)
}
return
this
.
proxyWechaty
(
'
roomCreate
'
,
contactIdList
)
.
catch
(
e
=>
{
log
.
error
(
'
PuppetWebBridge
'
,
'
roomCreate(%s) exception: %s
'
,
contactIdList
,
e
.
message
)
...
...
src/puppet-web/browser.js
浏览文件 @
acb562db
...
...
@@ -415,10 +415,10 @@ this.onResourceRequested = function(request, net) {
// log.verbose('PuppetWebBrowser', `Browser.execute() driver.getSession: %s`, util.inspect(this.driver.getSession()))
if
(
this
.
dead
())
{
return
Promise
.
reject
(
new
Error
(
'
browser dead
'
))
}
// XXX
console
.
log
(
'
#############
'
)
console
.
log
(
script
)
console
.
log
(
args
)
// XXX
//
console.log('#############')
//
console.log(script)
//
console.log(args)
return
this
.
driver
.
executeScript
.
apply
(
this
.
driver
,
arguments
)
.
catch
(
e
=>
{
...
...
src/puppet-web/puppet-web.js
浏览文件 @
acb562db
...
...
@@ -376,7 +376,18 @@ class PuppetWeb extends Puppet {
log
.
warn
(
'
PuppetWeb
'
,
'
roomAddMember(%s) rejected: %s
'
,
contact
,
e
.
message
)
throw
e
})
}
roomModTopic
(
room
,
topic
)
{
if
(
!
this
.
bridge
)
{
return
Promise
.
reject
(
new
Error
(
'
fail: no bridge(yet)!
'
))
}
const
roomId
=
room
.
get
(
'
id
'
)
return
this
.
bridge
.
roomModTopic
(
roomId
,
topic
)
.
catch
(
e
=>
{
log
.
warn
(
'
PuppetWeb
'
,
'
roomModTopic(%s) rejected: %s
'
,
topic
,
e
.
message
)
throw
e
})
}
roomCreate
(
contactList
)
{
...
...
src/puppet-web/wechaty-bro.js
浏览文件 @
acb562db
...
...
@@ -474,11 +474,16 @@
function
roomAddMember
(
ChatRoomName
,
UserName
)
{
const
chatroomFactory
=
WechatyBro
.
glue
.
chatroomFactory
// XXX
log
(
ChatRoomName
)
log
(
UserName
)
//
log(ChatRoomName)
//
log(UserName)
return
chatroomFactory
.
addMember
(
ChatRoomName
,
UserName
)
}
function
roomModTopic
(
ChatRoomName
,
topic
)
{
const
chatroomFactory
=
WechatyBro
.
glue
.
chatroomFactory
return
chatroomFactory
.
modTopic
(
ChatRoomName
,
topic
)
}
function
roomCreate
(
UserNameList
)
{
const
UserNameListArg
=
UserNameList
.
map
(
n
=>
{
return
{
UserName
:
n
}
})
...
...
@@ -558,6 +563,7 @@
,
roomCreate
,
roomAddMember
,
roomDelMember
,
roomModTopic
// test purpose
,
isLogin
:
isLogin
...
...
src/room.js
浏览文件 @
acb562db
...
...
@@ -14,6 +14,7 @@ class Room {
log
.
silly
(
'
Room
'
,
`constructor(
${
id
}
)`
)
this
.
id
=
id
this
.
obj
=
{}
this
.
dirtyObj
=
{}
// when refresh, use this to save dirty data for query
if
(
!
Room
.
puppet
)
{
throw
new
Error
(
'
no puppet attached to Room
'
)
}
...
...
@@ -23,10 +24,11 @@ class Room {
toStringEx
()
{
return
`Room(
${
this
.
obj
.
name
}
[
${
this
.
id
}
])`
}
isReady
()
{
return
this
.
obj
.
member
s
&&
this
.
obj
.
members
.
length
return
this
.
obj
.
member
List
&&
this
.
obj
.
memberList
.
length
}
refresh
()
{
this
.
dirtyObj
=
this
.
obj
this
.
obj
=
{}
return
this
.
ready
()
}
...
...
@@ -40,7 +42,7 @@ class Room {
}
else
if
(
this
.
isReady
())
{
return
Promise
.
resolve
(
this
)
}
else
if
(
this
.
obj
.
id
)
{
log
.
warn
(
'
Room
'
,
'
ready() has obj.id but member
s l
ist empty in room %s. reloading
'
,
this
.
obj
.
name
)
log
.
warn
(
'
Room
'
,
'
ready() has obj.id but member
L
ist empty in room %s. reloading
'
,
this
.
obj
.
name
)
}
contactGetter
=
contactGetter
||
Room
.
puppet
.
getContact
.
bind
(
Room
.
puppet
)
...
...
@@ -57,7 +59,7 @@ class Room {
}
name
()
{
return
UtilLib
.
plainText
(
this
.
obj
.
name
)
}
get
(
prop
)
{
return
this
.
obj
[
prop
]
}
get
(
prop
)
{
return
this
.
obj
[
prop
]
||
this
.
dirtyObj
[
prop
]
}
parse
(
rawObj
)
{
if
(
!
rawObj
)
{
...
...
@@ -67,7 +69,7 @@ class Room {
id
:
rawObj
.
UserName
,
encryId
:
rawObj
.
EncryChatRoomId
// ???
,
name
:
rawObj
.
NickName
,
member
s
:
this
.
parseMemberList
(
rawObj
.
MemberList
)
,
member
List
:
this
.
parseMemberList
(
rawObj
.
MemberList
)
}
}
...
...
@@ -99,6 +101,37 @@ class Room {
throw
new
Error
(
'
contact not found
'
)
}
return
Room
.
puppet
.
roomDelMember
(
this
,
contact
)
.
then
(
r
=>
this
.
delLocal
(
contact
))
}
delLocal
(
contact
)
{
log
.
verbose
(
'
Room
'
,
'
delLocal(%s)
'
,
contact
)
const
memberList
=
this
.
obj
.
memberList
if
(
!
memberList
||
memberList
.
length
===
0
)
{
return
true
// already in refreshing
}
let
i
for
(
i
=
0
;
i
<
memberList
.
length
;
i
++
)
{
// XXX
// console.log('########################')
// console.log(i)
// console.log(memberList[i].id)
// console.log(contact.get('id'))
// console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!')
if
(
memberList
[
i
].
id
===
contact
.
get
(
'
id
'
))
{
break
}
}
// console.log('found i=' + i)
if
(
i
<
memberList
.
length
)
{
// console.log('splicing before: ' + memberList.length)
memberList
.
splice
(
i
,
1
)
// console.log('splicing after: ' + memberList.length)
return
true
}
return
false
}
quit
()
{
...
...
@@ -116,6 +149,12 @@ class Room {
return
Room
.
puppet
.
roomAddMember
(
this
,
contact
)
}
modTopic
(
topic
)
{
log
.
verbose
(
'
Room
'
,
'
modTopic(%s)
'
,
topic
)
return
Room
.
puppet
.
roomModTopic
(
this
,
topic
)
}
static
create
(
contactList
)
{
log
.
verbose
(
'
Room
'
,
'
create(%s)
'
,
contactList
.
join
(
'
,
'
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录