Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
.Veneno.
wechaty
提交
30b0926f
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,发现更多精彩内容 >>
提交
30b0926f
编写于
5月 01, 2018
作者:
Huan (李卓桓)
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Schema Interface Rename
上级
517795c5
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
38 addition
and
41 deletion
+38
-41
src/puppet-puppeteer/bridge.ts
src/puppet-puppeteer/bridge.ts
+4
-4
src/puppet-puppeteer/event.ts
src/puppet-puppeteer/event.ts
+3
-3
src/puppet-puppeteer/puppet-puppeteer.ts
src/puppet-puppeteer/puppet-puppeteer.ts
+11
-13
src/puppet-puppeteer/puppeteer-friend-request.spec.ts
src/puppet-puppeteer/puppeteer-friend-request.spec.ts
+1
-2
src/puppet-puppeteer/puppeteer-message.ts
src/puppet-puppeteer/puppeteer-message.ts
+13
-13
src/puppet-puppeteer/schema.ts
src/puppet-puppeteer/schema.ts
+6
-6
未找到文件。
src/puppet-puppeteer/bridge.ts
浏览文件 @
30b0926f
...
...
@@ -39,8 +39,8 @@ import Profile from '../profile'
import
Misc
from
'
../misc
'
import
{
M
ediaData
,
MsgRaw
Obj
,
M
sgMediaPayload
,
MsgRaw
Payload
,
}
from
'
./schema
'
import
{
PuppeteerContactRawObj
}
from
'
./puppeteer-contact
'
...
...
@@ -595,7 +595,7 @@ export class Bridge extends EventEmitter {
}
}
public
async
sendMedia
(
mediaData
:
M
ediaData
):
Promise
<
boolean
>
{
public
async
sendMedia
(
mediaData
:
M
sgMediaPayload
):
Promise
<
boolean
>
{
log
.
verbose
(
'
PuppetPuppeteerBridge
'
,
'
sendMedia(mediaData)
'
)
if
(
!
mediaData
.
ToUserName
)
{
...
...
@@ -612,7 +612,7 @@ export class Bridge extends EventEmitter {
}
}
public
async
forward
(
baseData
:
MsgRaw
Obj
,
patchData
:
MsgRawObj
):
Promise
<
boolean
>
{
public
async
forward
(
baseData
:
MsgRaw
Payload
,
patchData
:
MsgRawPayload
):
Promise
<
boolean
>
{
log
.
verbose
(
'
PuppetPuppeteerBridge
'
,
'
forward()
'
)
if
(
!
baseData
.
ToUserName
)
{
...
...
src/puppet-puppeteer/event.ts
浏览文件 @
30b0926f
...
...
@@ -34,7 +34,7 @@ import Firer from './firer'
import
PuppetPuppeteer
from
'
./puppet-puppeteer
'
import
{
MsgType
,
MsgRaw
Obj
,
MsgRaw
Payload
,
}
from
'
./schema
'
/* tslint:disable:variable-name */
...
...
@@ -182,7 +182,7 @@ async function onLogout(
async
function
onMessage
(
this
:
PuppetPuppeteer
,
obj
:
MsgRaw
Obj
,
obj
:
MsgRaw
Payload
,
):
Promise
<
void
>
{
let
m
=
new
PuppeteerMessage
(
obj
)
m
.
puppet
=
this
...
...
src/puppet-puppeteer/puppet-puppeteer.ts
浏览文件 @
30b0926f
...
...
@@ -50,8 +50,8 @@ import {
import
Event
from
'
./event
'
import
{
M
ediaData
,
MsgRaw
Obj
,
M
sgMediaPayload
,
MsgRaw
Payload
,
MediaType
,
MsgType
,
}
from
'
./schema
'
...
...
@@ -320,7 +320,7 @@ export class PuppetPuppeteer extends Puppet {
}
}
private
async
uploadMedia
(
message
:
PuppeteerMessage
,
toUserName
:
string
):
Promise
<
M
ediaData
>
{
private
async
uploadMedia
(
message
:
PuppeteerMessage
,
toUserName
:
string
):
Promise
<
M
sgMediaPayload
>
{
if
(
message
.
type
()
===
PuppeteerMessage
.
Type
.
TEXT
)
{
throw
new
Error
(
'
require a Media Message
'
)
}
...
...
@@ -426,7 +426,7 @@ export class PuppetPuppeteer extends Puppet {
FileSize
:
size
,
FileMd5
:
md5
,
MMFileExt
:
ext
,
}
as
M
ediaData
}
as
M
sgMediaPayload
// If file size > 25M, must first call checkUpload to get Signature and AESKey, otherwise it will fail to upload
// https://github.com/Chatie/webwx-app-tracker/blob/7c59d35c6ea0cff38426a4c5c912a086c4c512b2/formatted/webwxApp.js#L1132 #1182
...
...
@@ -556,8 +556,8 @@ export class PuppetPuppeteer extends Puppet {
destinationId
=
to
.
id
}
let
mediaData
:
M
ediaData
const
rawObj
=
message
.
rawObj
||
{}
as
MsgRaw
Obj
let
mediaData
:
M
sgMediaPayload
const
rawObj
=
message
.
rawObj
||
{}
as
MsgRaw
Payload
if
(
!
rawObj
||
!
rawObj
.
MediaId
)
{
try
{
...
...
@@ -607,7 +607,10 @@ export class PuppetPuppeteer extends Puppet {
* TODO: Test this function if it could work...
*/
// public async forward(baseData: MsgRawObj, patchData: MsgRawObj): Promise<boolean> {
public
async
forward
(
message
:
PuppeteerMessage
,
sendTo
:
PuppeteerContact
|
PuppeteerRoom
):
Promise
<
void
>
{
public
async
forward
(
message
:
PuppeteerMessage
,
sendTo
:
PuppeteerContact
|
PuppeteerRoom
,
):
Promise
<
void
>
{
log
.
silly
(
'
PuppetPuppeteer
'
,
'
forward() to: %s, message: %s)
'
,
sendTo
,
message
.
filename
(),
...
...
@@ -620,7 +623,7 @@ export class PuppetPuppeteer extends Puppet {
}
let
m
=
Object
.
assign
({},
message
.
rawObj
)
const
newMsg
=
<
MsgRaw
Obj
>
{}
const
newMsg
=
<
MsgRaw
Payload
>
{}
const
largeFileSize
=
25
*
1024
*
1024
// let ret = false
// if you know roomId or userId, you can use `Room.load(roomId)` or `Contact.load(userId)`
...
...
@@ -736,11 +739,6 @@ export class PuppetPuppeteer extends Puppet {
return
}
// const m = new Message()
// m.to('filehelper')
// m.text(content)
// return await this.send(m)
return
await
this
.
user
.
say
(
text
)
}
...
...
src/puppet-puppeteer/puppeteer-friend-request.spec.ts
浏览文件 @
30b0926f
...
...
@@ -50,12 +50,11 @@ test('PuppetPuppeteerFriendRequest.receive smoke testing', async t => {
{"MsgId":"3225371967511173931","FromUserName":"fmessage","ToUserName":"@f7321198e0349f1b38c9f2ef158f70eb","MsgType":37,"Content":"<msg fromusername=\\"wxid_a8d806dzznm822\\" encryptusername=\\"v1_c1e03a32c60dd9a9e14f1092132808a2de0ad363f79b303693654282954fbe4d3e12481166f4b841f28de3dd58b0bd54@stranger\\" fromnickname=\\"李卓桓.PreAngel\\" content=\\"我是群聊&quot;Wechaty&quot;的李卓桓.PreAngel\\" shortpy=\\"LZHPREANGEL\\" imagestatus=\\"3\\" scene=\\"14\\" country=\\"CN\\" province=\\"Beijing\\" city=\\"Haidian\\" sign=\\"投资人中最会飞的程序员。好友请加 918999 ,因为本号好友已满。\\" percard=\\"1\\" sex=\\"1\\" alias=\\"zixia008\\" weibo=\\"\\" weibonickname=\\"\\" albumflag=\\"0\\" albumstyle=\\"0\\" albumbgimgid=\\"911623988445184_911623988445184\\" snsflag=\\"49\\" snsbgimgid=\\"http://mmsns.qpic.cn/mmsns/zZSYtpeVianSQYekFNbuiajROicLficBzzeGuvQjnWdGDZ4budZovamibQnoKWba7D2LeuQRPffS8aeE/0\\" snsbgobjectid=\\"12183966160653848744\\" mhash=\\"\\" mfullhash=\\"\\" bigheadimgurl=\\"http://wx.qlogo.cn/mmhead/ver_1/xct7OPTbuU6iaS8gTaK2VibhRs3rATwnU1rCUwWu8ic89EGOynaic2Y4MUdKr66khhAplcfFlm7xbXhum5reania3fXDXH6CI9c3Bb4BODmYAh04/0\\" smallheadimgurl=\\"http://wx.qlogo.cn/mmhead/ver_1/xct7OPTbuU6iaS8gTaK2VibhRs3rATwnU1rCUwWu8ic89EGOynaic2Y4MUdKr66khhAplcfFlm7xbXhum5reania3fXDXH6CI9c3Bb4BODmYAh04/132\\" ticket=\\"v2_ba70dfbdb1b10168d61c1ab491be19e219db11ed5c28701f605efb4dccbf132f664d8a4c9ef6e852b2a4e8d8638be81d125c2e641f01903669539c53f1e582b2@stranger\\" opcode=\\"2\\" googlecontact=\\"\\" qrticket=\\"\\" chatroomusername=\\"2332413729@chatroom\\" sourceusername=\\"\\" sourcenickname=\\"\\"><brandlist count=\\"0\\" ver=\\"670564024\\"></brandlist></msg>","Status":3,"ImgStatus":1,"CreateTime":1475567560,"VoiceLength":0,"PlayLength":0,"FileName":"","FileSize":"","MediaId":"","Url":"","AppMsgType":0,"StatusNotifyCode":0,"StatusNotifyUserName":"","RecommendInfo":{"UserName":"@04a0fa314d0d8d50dc54e2ec908744ebf46b87404d143fd9a6692182dd90bd49","NickName":"李卓桓.PreAngel","Province":"北京","City":"海淀","Content":"我是群聊\\"Wechaty\\"的李卓桓.PreAngel","Signature":"投资人中最会飞的程序员。好友请加 918999 ,因为本号好友已满。","Alias":"zixia008","Scene":14,"AttrStatus":233251,"Sex":1,"Ticket":"v2_ba70dfbdb1b10168d61c1ab491be19e219db11ed5c28701f605efb4dccbf132f664d8a4c9ef6e852b2a4e8d8638be81d125c2e641f01903669539c53f1e582b2@stranger","OpCode":2,"HeadImgUrl":"/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&username=@04a0fa314d0d8d50dc54e2ec908744ebf46b87404d143fd9a6692182dd90bd49&skey=@crypt_f9cec94b_5b073dca472bd5e41771d309bb8c37bd&msgid=3225371967511173931","MMFromVerifyMsg":true},"ForwardFlag":0,"AppInfo":{"AppID":"","Type":0},"HasProductId":0,"Ticket":"","ImgHeight":0,"ImgWidth":0,"SubMsgType":0,"NewMsgId":3225371967511174000,"MMPeerUserName":"fmessage","MMDigest":"李卓桓.PreAngel想要将你加为朋友","MMIsSend":false,"MMIsChatRoom":false,"MMUnread":true,"LocalID":"3225371967511173931","ClientMsgId":"3225371967511173931","MMActualContent":"<msg fromusername=\\"wxid_a8d806dzznm822\\" encryptusername=\\"v1_c1e03a32c60dd9a9e14f1092132808a2de0ad363f79b303693654282954fbe4d3e12481166f4b841f28de3dd58b0bd54@stranger\\" fromnickname=\\"李卓桓.PreAngel\\" content=\\"我是群聊&quot;Wechaty&quot;的李卓桓.PreAngel\\" shortpy=\\"LZHPREANGEL\\" imagestatus=\\"3\\" scene=\\"14\\" country=\\"CN\\" province=\\"Beijing\\" city=\\"Haidian\\" sign=\\"投资人中最会飞的程序员。好友请加 918999 ,因为本号好友已满。\\" percard=\\"1\\" sex=\\"1\\" alias=\\"zixia008\\" weibo=\\"\\" weibonickname=\\"\\" albumflag=\\"0\\" albumstyle=\\"0\\" albumbgimgid=\\"911623988445184_911623988445184\\" snsflag=\\"49\\" snsbgimgid=\\"http://mmsns.qpic.cn/mmsns/zZSYtpeVianSQYekFNbuiajROicLficBzzeGuvQjnWdGDZ4budZovamibQnoKWba7D2LeuQRPffS8aeE/0\\" snsbgobjectid=\\"12183966160653848744\\" mhash=\\"\\" mfullhash=\\"\\" bigheadimgurl=\\"http://wx.qlogo.cn/mmhead/ver_1/xct7OPTbuU6iaS8gTaK2VibhRs3rATwnU1rCUwWu8ic89EGOynaic2Y4MUdKr66khhAplcfFlm7xbXhum5reania3fXDXH6CI9c3Bb4BODmYAh04/0\\" smallheadimgurl=\\"http://wx.qlogo.cn/mmhead/ver_1/xct7OPTbuU6iaS8gTaK2VibhRs3rATwnU1rCUwWu8ic89EGOynaic2Y4MUdKr66khhAplcfFlm7xbXhum5reania3fXDXH6CI9c3Bb4BODmYAh04/132\\" ticket=\\"v2_ba70dfbdb1b10168d61c1ab491be19e219db11ed5c28701f605efb4dccbf132f664d8a4c9ef6e852b2a4e8d8638be81d125c2e641f01903669539c53f1e582b2@stranger\\" opcode=\\"2\\" googlecontact=\\"\\" qrticket=\\"\\" chatroomusername=\\"2332413729@chatroom\\" sourceusername=\\"\\" sourcenickname=\\"\\"><brandlist count=\\"0\\" ver=\\"670564024\\"></brandlist></msg>","MMActualSender":"fmessage","MMDigestTime":"15:52","MMDisplayTime":1475567560,"MMTime":"15:52"}
`
const
rawObj
=
JSON
.
parse
(
rawMessageData
)
// const m = new Message(rawObj)
const
fr
=
new
MyFriendRequest
()
fr
.
receive
(
rawObj
.
RecommendInfo
)
t
.
true
(
typeof
fr
.
info
===
'
object
'
,
'
should has info object
'
)
t
.
true
(
typeof
fr
.
payload
===
'
object
'
,
'
should has info object
'
)
t
.
is
(
fr
.
hello
,
'
我是群聊"Wechaty"的李卓桓.PreAngel
'
,
'
should has right request message
'
)
t
.
true
(
fr
.
contact
instanceof
PuppeteerContact
,
'
should have a Contact instance
'
)
t
.
is
(
fr
.
type
as
any
,
'
receive
'
,
'
should be receive type
'
)
...
...
src/puppet-puppeteer/puppeteer-message.ts
浏览文件 @
30b0926f
...
...
@@ -39,8 +39,8 @@ import PuppeteerRoom from './puppeteer-room'
import
{
AppMsgType
,
Msg
Obj
,
MsgRaw
Obj
,
Msg
Payload
,
MsgRaw
Payload
,
MsgType
,
}
from
'
./schema
'
...
...
@@ -66,8 +66,8 @@ export class PuppeteerMessage extends Message {
/**
* @private
*/
public
obj
:
Msg
Obj
public
rawObj
?:
MsgRaw
Obj
public
obj
:
Msg
Payload
public
rawObj
?:
MsgRaw
Payload
private
parsedPath
?:
ParsedPath
...
...
@@ -75,12 +75,12 @@ export class PuppeteerMessage extends Message {
* @private
*/
constructor
(
fileOrObj
?:
string
|
MsgRaw
Obj
,
fileOrObj
?:
string
|
MsgRaw
Payload
,
)
{
super
()
log
.
silly
(
'
PuppeteerMessage
'
,
'
constructor()
'
)
this
.
obj
=
{}
as
Msg
Obj
this
.
obj
=
{}
as
Msg
Payload
// this.rawObj = {} as MsgRawObj
if
(
!
fileOrObj
)
{
...
...
@@ -102,8 +102,8 @@ export class PuppeteerMessage extends Message {
* @private
*/
// Transform rawObj to local obj
private
parse
(
rawObj
:
MsgRaw
Obj
):
MsgObj
{
const
obj
:
Msg
Obj
=
{
private
parse
(
rawObj
:
MsgRaw
Payload
):
MsgPayload
{
const
obj
:
Msg
Payload
=
{
id
:
rawObj
.
MsgId
,
type
:
rawObj
.
MsgType
,
from
:
rawObj
.
MMActualSender
,
// MMPeerUserName
...
...
@@ -675,7 +675,7 @@ export class PuppeteerMessage extends Message {
*/
public
dump
()
{
console
.
error
(
'
======= dump message =======
'
)
Object
.
keys
(
this
.
obj
!
).
forEach
((
k
:
keyof
Msg
Obj
)
=>
console
.
error
(
`
${
k
}
:
${
this
.
obj
!
[
k
]}
`
))
Object
.
keys
(
this
.
obj
!
).
forEach
((
k
:
keyof
Msg
Payload
)
=>
console
.
error
(
`
${
k
}
:
${
this
.
obj
!
[
k
]}
`
))
}
/**
...
...
@@ -686,14 +686,14 @@ export class PuppeteerMessage extends Message {
if
(
!
this
.
rawObj
)
{
throw
new
Error
(
'
no this.rawObj
'
)
}
Object
.
keys
(
this
.
rawObj
).
forEach
((
k
:
keyof
MsgRaw
Obj
)
=>
console
.
error
(
`
${
k
}
:
${
this
.
rawObj
&&
this
.
rawObj
[
k
]}
`
))
Object
.
keys
(
this
.
rawObj
).
forEach
((
k
:
keyof
MsgRaw
Payload
)
=>
console
.
error
(
`
${
k
}
:
${
this
.
rawObj
&&
this
.
rawObj
[
k
]}
`
))
}
/**
* @todo add function
*/
public
static
async
find
(
query
:
any
)
{
return
Promise
.
resolve
(
new
PuppeteerMessage
(
<
MsgRaw
Obj
>
{
MsgId
:
'
-1
'
}))
return
Promise
.
resolve
(
new
PuppeteerMessage
(
<
MsgRaw
Payload
>
{
MsgId
:
'
-1
'
}))
}
/**
...
...
@@ -701,8 +701,8 @@ export class PuppeteerMessage extends Message {
*/
public
static
async
findAll
(
query
:
any
)
{
return
Promise
.
resolve
([
new
PuppeteerMessage
(
<
MsgRaw
Obj
>
{
MsgId
:
'
-2
'
}),
new
PuppeteerMessage
(
<
MsgRaw
Obj
>
{
MsgId
:
'
-3
'
}),
new
PuppeteerMessage
(
<
MsgRaw
Payload
>
{
MsgId
:
'
-2
'
}),
new
PuppeteerMessage
(
<
MsgRaw
Payload
>
{
MsgId
:
'
-3
'
}),
])
}
...
...
src/puppet-puppeteer/schema.ts
浏览文件 @
30b0926f
...
...
@@ -16,7 +16,7 @@
* limitations under the License.
*
*/
export
interface
M
ediaData
{
export
interface
M
sgMediaPayload
{
ToUserName
:
string
,
MsgType
:
number
,
MediaId
:
string
,
...
...
@@ -28,7 +28,7 @@ export interface MediaData {
Signature
?:
string
,
}
export
interface
MsgRaw
Obj
{
export
interface
MsgRaw
Payload
{
MsgId
:
string
,
MMActualSender
:
string
,
// getUserContact(message.MMActualSender,message.MMPeerUserName).isContact()
...
...
@@ -127,7 +127,7 @@ export interface MsgRawObj {
* MsgType == CONF.MSGTYPE_SHARECARD" ng-click="showProfile($event,message.RecommendInfo.UserName)
* MsgType == CONF.MSGTYPE_VERIFYMSG
*/
RecommendInfo
?:
Recommend
Info
,
RecommendInfo
?:
Recommend
Payload
,
/**
* Transpond Message
...
...
@@ -141,7 +141,7 @@ export interface MsgRawObj {
}
export
interface
Msg
Obj
{
export
interface
Msg
Payload
{
id
:
string
,
type
:
MsgType
,
from
:
string
,
...
...
@@ -161,7 +161,7 @@ export interface MsgObj {
// export type MessageTypeValue = 1 | 3 | 34 | 37 | 40 | 42 | 43 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 62 | 9999 | 10000 | 10002
export
interface
MsgType
Map
{
export
interface
MsgType
Dict
{
[
index
:
string
]:
string
|
number
,
// MessageTypeName: MessageTypeValue
// , MessageTypeValue: MessageTypeName
...
...
@@ -257,7 +257,7 @@ export enum MsgType {
/**
* from Message
*/
export
interface
Recommend
Info
{
export
interface
Recommend
Payload
{
UserName
:
string
,
NickName
:
string
,
// display_name
Content
:
string
,
// request message
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录