Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.Veneno.
wechaty
提交
b9b7897c
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,发现更多精彩内容 >>
提交
b9b7897c
编写于
10月 19, 2016
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
bug fix
上级
fa101547
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
33 addition
and
17 deletion
+33
-17
package.json
package.json
+1
-1
src/config.ts
src/config.ts
+5
-3
src/puppet-web/browser.ts
src/puppet-web/browser.ts
+5
-1
src/puppet-web/puppet-web.ts
src/puppet-web/puppet-web.ts
+4
-1
src/puppet-web/watchdog.ts
src/puppet-web/watchdog.ts
+17
-10
src/room.ts
src/room.ts
+1
-1
未找到文件。
package.json
浏览文件 @
b9b7897c
...
...
@@ -7,7 +7,7 @@
"wechaty"
:
{
"DEFAULT_HEAD"
:
"chrome"
,
"DEFAULT_PUPPET"
:
"web"
,
"DEFAULT_PROFILE"
:
"
profile
"
,
"DEFAULT_PROFILE"
:
"
demo
"
,
"DEFAULT_PORT"
:
8788
,
"DEFAULT_PROTOCOL"
:
"io|0.0.1"
,
"DEFAULT_TOKEN"
:
"WECHATY_IO_TOKEN"
,
...
...
src/config.ts
浏览文件 @
b9b7897c
...
...
@@ -135,12 +135,14 @@ Object.assign(Config, {
puppetInstance
})
export
type
WatchdogFoodName
=
'
HEARTBEAT
'
|
'
POISON
'
|
'
SCAN
'
export
type
WatchdogFood
=
{
data
:
any
,
timeout
?:
number
// millisecond
,
type
?:
'
HEARTBEAT
'
|
'
POISON
'
|
'
SCAN
'
,
type
?:
WatchdogFoodName
}
export
type
ScanInfo
=
{
...
...
src/puppet-web/browser.ts
浏览文件 @
b9b7897c
...
...
@@ -534,7 +534,11 @@ class Browser extends EventEmitter {
}
public
dead
(
forceReason
?:
string
):
boolean
{
log
.
verbose
(
'
PuppetWebBrowser
'
,
'
dead(%s)
'
,
forceReason
?
forceReason
:
''
)
if
(
forceReason
)
{
log
.
verbose
(
'
PuppetWebBrowser
'
,
'
dead(%s)
'
,
forceReason
)
}
else
{
log
.
silly
(
'
PuppetWebBrowser
'
,
'
dead()
'
)
}
let
msg
let
dead
=
false
...
...
src/puppet-web/puppet-web.ts
浏览文件 @
b9b7897c
...
...
@@ -49,7 +49,10 @@ export class PuppetWeb extends Puppet {
private
port
:
number
constructor
(
private
setting
:
PuppetWebSetting
=
{})
{
public
lastScanEventTime
:
number
public
watchDogLastSaveSession
:
number
constructor
(
public
setting
:
PuppetWebSetting
=
{})
{
super
()
this
.
on
(
'
watchdog
'
,
Watchdog
.
onFeed
.
bind
(
this
))
...
...
src/puppet-web/watchdog.ts
浏览文件 @
b9b7897c
...
...
@@ -15,12 +15,13 @@
*/
// const co = require('co')
import
log
from
'
../brolog-env
'
import
{
WatchdogFood
}
from
'
../config
'
import
Event
from
'
./event
'
WatchdogFood
,
WatchdogFoodName
,
log
}
from
'
../config
'
import
PuppetWeb
from
'
./puppet-web
'
import
Event
from
'
./event
'
/* tslint:disable:variable-name */
const
Watchdog
=
{
...
...
@@ -122,11 +123,16 @@ function watchDogReset(timeout, lastFeed) {
* save every 5 mins
*
*/
function
autoSaveSession
()
{
function
autoSaveSession
(
this
:
PuppetWeb
,
force
=
false
)
{
log
.
silly
(
'
PuppetWebWatchdog
'
,
'
autoSaveSession()
'
)
if
(
force
)
{
this
.
watchDogLastSaveSession
=
0
// 0 will cause save session right now
}
const
SAVE_SESSION_INTERVAL
=
5
*
60
*
1000
// 5 mins
if
(
Date
.
now
()
-
this
.
watchDogLastSaveSession
>
SAVE_SESSION_INTERVAL
)
{
log
.
verbose
(
'
PuppetWebWatchdog
'
,
'
watchDog() saveSession
(%s) after %d minutes
'
,
this
.
profile
log
.
verbose
(
'
PuppetWebWatchdog
'
,
'
autoSaveSession() profile
(%s) after %d minutes
'
,
this
.
setting
.
profile
,
Math
.
floor
(
SAVE_SESSION_INTERVAL
/
1000
/
60
)
)
this
.
browser
.
saveSession
()
...
...
@@ -143,16 +149,17 @@ function autoSaveSession() {
* so we need to refresh the page after a while
*
*/
function
monitorScan
(
t
yp
e
)
{
function
monitorScan
(
t
his
:
PuppetWeb
,
type
:
WatchdogFoodNam
e
)
{
log
.
silly
(
'
PuppetWebWatchdog
'
,
'
monitorScan(%s)
'
,
type
)
const
scanTimeout
=
10
*
60
*
1000
// 10 mins
if
(
type
===
'
SCAN
'
)
{
// watchDog was feed a 'scan' data
this
.
lastScanEventTime
=
Date
.
now
()
// autoSaveSession.call(this, true)
}
if
(
this
.
logined
())
{
// XXX: login status right?
this
.
lastScanEventTime
=
null
this
.
lastScanEventTime
=
0
}
else
if
(
this
.
lastScanEventTime
&&
Date
.
now
()
-
this
.
lastScanEventTime
>
scanTimeout
)
{
log
.
warn
(
'
PuppetWebWatchdog
'
,
'
monirotScan() refresh browser for no food of type scan after %s mins
'
...
...
src/room.ts
浏览文件 @
b9b7897c
...
...
@@ -353,7 +353,7 @@ export class Room extends EventEmitter implements Sayable {
public
static
create
(
contactList
:
Contact
[],
topic
?:
string
):
Promise
<
Room
>
{
log
.
verbose
(
'
Room
'
,
'
create(%s, %s)
'
,
contactList
.
join
(
'
,
'
),
topic
)
if
(
!
contactList
||
!
(
typeof
contactList
===
'
array
'
))
{
if
(
!
contactList
||
!
Array
.
isArray
(
contactList
))
{
throw
new
Error
(
'
contactList not found
'
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录