Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.Veneno.
wechaty
提交
5cb8afd4
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,发现更多精彩内容 >>
提交
5cb8afd4
编写于
10月 15, 2016
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
bug fix
上级
62e46ce1
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
48 addition
and
38 deletion
+48
-38
src/message.ts
src/message.ts
+2
-2
src/puppet-web/bridge.ts
src/puppet-web/bridge.ts
+41
-28
src/puppet-web/browser.ts
src/puppet-web/browser.ts
+2
-0
src/state-monitor.ts
src/state-monitor.ts
+2
-3
src/wechaty.ts
src/wechaty.ts
+1
-5
未找到文件。
src/message.ts
浏览文件 @
5cb8afd4
...
...
@@ -18,13 +18,13 @@ import log from './brolog-env'
export
type
MessageRawObj
=
{
MsgId
:
string
MsgType
:
string
MsgType
:
number
MMActualSender
:
string
ToUserName
:
string
MMActualContent
:
string
// Content has @id prefix added by wx
Status
:
string
MMDigest
:
string
MMDisplayTime
:
string
// Javascript timestamp of milliseconds
MMDisplayTime
:
number
// Javascript timestamp of milliseconds
Url
:
string
RecommendInfo
?:
RecommendInfo
...
...
src/puppet-web/bridge.ts
浏览文件 @
5cb8afd4
...
...
@@ -37,37 +37,48 @@ class Bridge {
public
async
init
():
Promise
<
Bridge
>
{
log
.
verbose
(
'
PuppetWebBridge
'
,
'
init()
'
)
const
max
=
15
const
backoff
=
100
return
this
.
inject
()
.
then
(
r
=>
{
// log.silly('PuppetWebBridge', 'init() inject() return %s at attempt %d', r, attempt)
return
this
})
.
catch
(
e
=>
{
log
.
silly
(
'
PuppetWebBridge
'
,
'
init() inject() exception: %s
'
,
e
&&
e
.
message
||
e
)
throw
e
})
// const max = 15
// const backoff = 100
// max = (2*totalTime/backoff) ^ (1/2)
// timeout = 11,250 for {max: 15, backoff: 100}
// timeout = 45,000 for {max: 30, backoff: 100}
// timeout = 30,6250 for {max: 35, backoff: 500}
const
timeout
=
max
*
(
backoff
*
max
)
/
2
return
retryPromise
({
max
:
max
,
backoff
:
backoff
},
attempt
=>
{
log
.
silly
(
'
PuppetWebBridge
'
,
'
init() retryPromise: attampt %s/%s times for timeout %s
'
,
attempt
,
max
,
timeout
)
return
this
.
inject
()
.
then
(
r
=>
{
log
.
silly
(
'
PuppetWebBridge
'
,
'
init() inject() return %s at attempt %d
'
,
r
,
attempt
)
return
this
})
.
catch
(
e
=>
{
log
.
silly
(
'
PuppetWebBridge
'
,
'
init() inject() attempt %d exception: %s
'
,
attempt
,
e
.
message
)
throw
e
})
})
.
then
(
_
=>
{
log
.
silly
(
'
PuppetWebBridge
'
,
'
init()-ed
'
)
return
this
})
.
catch
(
e
=>
{
log
.
warn
(
'
PuppetWebBridge
'
,
'
init() inject FINAL fail: %s
'
,
e
.
message
)
throw
e
})
// const timeout = max * (backoff * max) / 2
// return retryPromise({ max: max, backoff: backoff }, attempt => {
// log.silly('PuppetWebBridge', 'init() retryPromise: attampt %s/%s times for timeout %s'
// , attempt, max, timeout)
// return this.inject()
// .then(r => {
// log.silly('PuppetWebBridge', 'init() inject() return %s at attempt %d', r, attempt)
// return this
// })
// .catch(e => {
// log.silly('PuppetWebBridge', 'init() inject() attempt %d exception: %s', attempt, e.message)
// throw e
// })
// })
// .then(_ => {
// log.silly('PuppetWebBridge', 'init()-ed')
// return this
// })
// .catch(e => {
// log.warn('PuppetWebBridge', 'init() inject FINAL fail: %s', e.message)
// throw e
// })
}
public
async
inject
():
Promise
<
any
>
{
...
...
@@ -116,12 +127,13 @@ class Bridge {
* Do not insert `return` in front of the code.
* because the new line `\n` will cause return nothing at all
*/
return
'
injectioReturnValue =
'
const
code
=
'
injectioReturnValue =
'
+
fs
.
readFileSync
(
path
.
join
(
__dirname
,
'
wechaty-bro.js
'
)
,
'
utf8
'
)
+
'
; return injectioReturnValue
'
return
code
.
replace
(
/
[\n\s]
/
,
'
'
)
}
public
logout
():
Promise
<
any
>
{
...
...
@@ -137,8 +149,9 @@ class Bridge {
log
.
verbose
(
'
PuppetWebBridge
'
,
'
quit()
'
)
return
this
.
proxyWechaty
(
'
quit
'
)
.
catch
(
e
=>
{
log
.
error
(
'
PuppetWebBridge
'
,
'
quit() exception: %s
'
,
e
.
message
)
throw
e
log
.
warn
(
'
PuppetWebBridge
'
,
'
quit() exception: %s
'
,
e
&&
e
.
message
||
e
)
// throw e
/* fail safe */
})
}
...
...
src/puppet-web/browser.ts
浏览文件 @
5cb8afd4
...
...
@@ -325,6 +325,8 @@ class Browser extends EventEmitter {
// XXX fail safe to `close` ?
this
.
currentState
(
'
close
'
)
/* fail safe */
}
return
...
...
src/state-monitor.ts
浏览文件 @
5cb8afd4
...
...
@@ -2,7 +2,7 @@
*
* Wechaty: Wechat for Bot. and for human who talk to bot/robot
*
* Class
Io
* Class
StateMonitor
* http://www.wechaty.io
*
* Licenst: ISC
...
...
@@ -16,7 +16,7 @@
* B - State B
*/
class
StateMonitor
<
A
,
B
>
{
export
class
StateMonitor
<
A
,
B
>
{
private
_target
:
A
|
B
private
_current
:
A
|
B
private
_stable
:
boolean
...
...
@@ -51,4 +51,3 @@ class StateMonitor <A, B>{
}
export
default
StateMonitor
export
{
StateMonitor
}
src/wechaty.ts
浏览文件 @
5cb8afd4
...
...
@@ -142,15 +142,11 @@ export class Wechaty extends EventEmitter {
return
Promise
.
resolve
(
this
)
}
// return co.call(this, function* () {
try
{
await
this
.
initPuppet
()
this
.
inited
=
true
// return this // for chaining
// }).catch(e => {
}
catch
(
e
)
{
log
.
error
(
'
Wechaty
'
,
'
init() exception: %s
'
,
e
.
message
)
log
.
error
(
'
Wechaty
'
,
'
init() exception: %s
'
,
e
&&
e
.
message
)
throw
e
}
return
this
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录