Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.www.
wechaty
提交
fe130b76
W
wechaty
项目概览
.www.
/
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,发现更多精彩内容 >>
提交
fe130b76
编写于
6月 04, 2017
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
差异文件
merge
上级
04317541
a897072c
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
6590 addition
and
24 deletion
+6590
-24
example/room-bot.ts
example/room-bot.ts
+1
-1
package-lock.json
package-lock.json
+6565
-0
package.json
package.json
+6
-7
src/contact.ts
src/contact.ts
+3
-3
src/puppet-web/browser-driver.ts
src/puppet-web/browser-driver.ts
+7
-6
src/puppet-web/browser.ts
src/puppet-web/browser.ts
+7
-7
src/wechaty.ts
src/wechaty.ts
+1
-0
未找到文件。
example/room-bot.ts
浏览文件 @
fe130b76
...
...
@@ -298,7 +298,7 @@ function checkRoomJoin(room: Room, inviteeList: Contact[], inviter: Contact) {
try
{
// let to, content
const
user
=
bot
.
user
()
const
user
=
bot
.
self
()
if
(
!
user
)
{
throw
new
Error
(
'
no user
'
)
}
...
...
package-lock.json
0 → 100644
浏览文件 @
fe130b76
此差异已折叠。
点击以展开。
package.json
浏览文件 @
fe130b76
{
"name"
:
"wechaty"
,
"version"
:
"0.8.
86
"
,
"version"
:
"0.8.
93
"
,
"description"
:
"Wechat for Bot(Personal Account)"
,
"main"
:
"dist/index.js"
,
"types"
:
"dist/index.d.ts"
,
...
...
@@ -124,21 +124,20 @@
"devDependencies"
:
{
"
@types/body-parser
"
:
"
1.16.3
"
,
"
@types/express
"
:
"
4.0.35
"
,
"
@types/fluent-ffmpeg
"
:
"
2.1.
0
"
,
"
@types/fluent-ffmpeg
"
:
"
2.1.
1
"
,
"
@types/mime
"
:
"
0.0.29
"
,
"
@types/node
"
:
"
7.0.2
2
"
,
"
@types/node
"
:
"
7.0.2
6
"
,
"
@types/request
"
:
"
0.0.43
"
,
"
@types/selenium-webdriver
"
:
"
3.0.4
"
,
"
@types/sinon
"
:
"
2.
2.2
"
,
"
@types/sinon
"
:
"
2.
3.0
"
,
"
@types/socket.io
"
:
"
1.4.29
"
,
"
@types/ws
"
:
"
0.0.41
"
,
"
@types/ws
"
:
"
3.0.0
"
,
"
apiai
"
:
"
4.0.2
"
,
"
ava
"
:
"
0.18.2
"
,
"
babel-cli
"
:
"
^6.24.1
"
,
"
babel-eslint
"
:
"
7.2.3
"
,
"
babel-preset-es2015
"
:
"
^6.24.1
"
,
"
check-node-version
"
:
"
2.1.0
"
,
"
codelyzer
"
:
"
3.0.1
"
,
"
cookie-parser
"
:
"
1.4.3
"
,
"
coveralls
"
:
"
2.13.1
"
,
"
cross-env
"
:
"
5.0.0
"
,
...
...
@@ -147,7 +146,7 @@
"
finis
"
:
"
0.0.2
"
,
"
fluent-ffmpeg
"
:
"
2.1.2
"
,
"
jsdoc-to-markdown
"
:
"
3.0.0
"
,
"
nyc
"
:
"
1
0.3
.2
"
,
"
nyc
"
:
"
1
1.0
.2
"
,
"
qrcode-terminal
"
:
"
0.11.0
"
,
"
shx
"
:
"
0.2.2
"
,
"
sinon
"
:
"
2.3.1
"
,
...
...
src/contact.ts
浏览文件 @
fe130b76
...
...
@@ -709,8 +709,8 @@ export class Contact implements Sayable {
const
content
=
textOrMedia
instanceof
MediaMessage
?
textOrMedia
.
filename
()
:
textOrMedia
log
.
verbose
(
'
Contact
'
,
'
say(%s)
'
,
content
)
const
wechaty
=
Wechaty
.
instance
()
const
user
=
wechaty
.
user
()
const
bot
=
Wechaty
.
instance
()
const
user
=
bot
.
self
()
if
(
!
user
)
{
throw
new
Error
(
'
no user
'
)
...
...
@@ -728,7 +728,7 @@ export class Contact implements Sayable {
m
.
to
(
this
)
log
.
silly
(
'
Contact
'
,
'
say() from: %s to: %s content: %s
'
,
user
.
name
(),
this
.
name
(),
content
)
return
await
wechaty
.
send
(
m
)
return
await
bot
.
send
(
m
)
}
}
...
...
src/puppet-web/browser-driver.ts
浏览文件 @
fe130b76
...
...
@@ -146,7 +146,7 @@ export class BrowserDriver {
log
.
verbose
(
'
PuppetWebBrowserDriver
'
,
'
getChromeDriver() new Builder() done
'
)
valid
=
await
this
.
valid
(
driver
)
log
.
verbose
(
'
PuppetWebBrowserDriver
'
,
'
getChromeDriver() valid()
done: %s
'
,
valid
)
log
.
verbose
(
'
PuppetWebBrowserDriver
'
,
'
getChromeDriver() valid()
is %s at ttl %d
'
,
valid
,
ttl
)
if
(
valid
)
{
log
.
silly
(
'
PuppetWebBrowserDriver
'
,
'
getChromeDriver() success
'
)
...
...
@@ -154,16 +154,17 @@ export class BrowserDriver {
return
driver
}
else
{
const
e
=
new
Error
(
'
g
etChromeDriver() got invalid driver
'
)
const
e
=
new
Error
(
'
g
ot invalid driver at ttl
'
+
ttl
)
log
.
warn
(
'
PuppetWebBrowserDriver
'
,
'
getChromeDriver() %s
'
,
e
.
message
)
driverError
=
e
driver
.
quit
()
// do not `await` here
log
.
verbose
(
'
PuppetWebBrowserDriver
'
,
'
getChromeDriver() driver.quit() at ttl %d
'
,
ttl
)
driver
.
quit
()
// do not await, because a invalid driver will always hang when quit()
.
catch
(
err
=>
{
log
.
warn
(
'
PuppetWebBrowserDriver
'
,
'
getChromeDriver() driver.quit() exception %s
'
,
err
.
message
)
log
.
warn
(
'
PuppetWebBrowserDriver
'
,
'
getChromeDriver() driver.quit() exception
:
%s
'
,
err
.
message
)
driverError
=
err
})
}
}
// END if
}
catch
(
e
)
{
if
(
/could not be found/
.
test
(
e
.
message
))
{
...
...
@@ -304,7 +305,7 @@ export class BrowserDriver {
* because we are in state(open, false) state, which will cause Watchdog Reset failure.
* https://travis-ci.org/wechaty/wechaty/jobs/179022657#L3246
*/
const
TIMEOUT
=
13
*
1000
const
TIMEOUT
=
7
*
1000
let
timer
:
NodeJS
.
Timer
|
null
...
...
src/puppet-web/browser.ts
浏览文件 @
fe130b76
...
...
@@ -128,13 +128,13 @@ export class Browser extends EventEmitter {
// Issue #175
// TODO: set a timer to guard driver.get timeout, then retry 3 times 201607
const
TIMEOUT
=
60
*
1000
let
TTL
=
3
while
(
TTL
--
)
{
log
.
verbose
(
'
PuppetWebBrowser
'
,
'
open() begin for ttl:%d
'
,
TTL
)
let
ttl
=
3
while
(
ttl
--
)
{
log
.
verbose
(
'
PuppetWebBrowser
'
,
'
open() begin for ttl:%d
'
,
ttl
)
try
{
await
new
Promise
(
async
(
resolve
,
reject
)
=>
{
const
id
=
setTimeout
(
async
()
=>
{
const
timer
=
setTimeout
(
async
_
=>
{
try
{
await
this
.
driver
.
close
()
await
this
.
driver
.
quit
()
...
...
@@ -148,7 +148,7 @@ export class Browser extends EventEmitter {
const
e
=
new
Error
(
'
timeout after
'
+
Math
.
round
(
TIMEOUT
/
1000
)
+
'
seconds
'
+
'
at ttl:
'
+
TTL
,
+
'
at ttl:
'
+
ttl
,
)
reject
(
e
)
},
TIMEOUT
)
...
...
@@ -159,12 +159,12 @@ export class Browser extends EventEmitter {
}
catch
(
e
)
{
reject
(
e
)
}
finally
{
clearTimeout
(
id
)
clearTimeout
(
timer
)
}
})
// open successful!
log
.
verbose
(
'
PuppetWebBrowser
'
,
'
open() end at ttl:%d
'
,
TTL
)
log
.
verbose
(
'
PuppetWebBrowser
'
,
'
open() end at ttl:%d
'
,
ttl
)
return
}
catch
(
e
)
{
...
...
src/wechaty.ts
浏览文件 @
fe130b76
...
...
@@ -150,6 +150,7 @@ export class Wechaty extends EventEmitter implements Sayable {
public
version
(
forceNpm
=
false
):
string
{
// TODO: use git rev-parse HEAD ?
const
dotGitPath
=
path
.
join
(
__dirname
,
'
..
'
,
'
.git
'
)
// only for ts-node, not for dist
// TODO: use git rev-parse HEAD ?
const
gitLogCmd
=
'
git
'
const
gitLogArgs
=
[
'
log
'
,
'
--oneline
'
,
'
-1
'
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录