Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.9.2.23 Fixed the bug where the system crashes upon receiving a message before successful startup #224

Merged
merged 65 commits into from
Mar 27, 2024
Merged
Changes from 7 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
0863b88
3.9.2.23 init (#180)
choogoo Jul 11, 2023
ad0e0e3
3.9.2.23 init (#182)
choogoo Jul 11, 2023
3faaa0b
适配3.9.2.23 (#185)
choogoo Sep 21, 2023
865ef7f
add 1.3.0 illustrate
atorber Sep 21, 2023
7bfb22c
Update README.md
atorber Sep 21, 2023
e2fe791
Update README.md
atorber Sep 21, 2023
5ae42d1
Merge pull request #2 from atorber/3.9.2.23
atorber Sep 21, 2023
eae4d90
add demo
atorber Sep 21, 2023
240252a
1.13.1
atorber Nov 14, 2023
6d3f020
Merge branch 'main' into 3.9.2.23
atorber Nov 14, 2023
b741379
1.13.1
atorber Nov 14, 2023
60c8f7d
Merge branch '3.9.2.23' of https://github.com/atorber/puppet-xp into …
atorber Nov 14, 2023
ad155b2
1.13.2 dev
atorber Nov 19, 2023
d7d72c7
Merge pull request #3 from atorber/3.9.2.23
atorber Nov 20, 2023
0d6c8ec
增加扫码登录、检测登录状态
atorber Nov 22, 2023
5e8a1ef
增加登入登出事件
atorber Nov 23, 2023
6a0afa8
增加ts改造init
atorber Dec 29, 2023
4b7892d
1.13.2
atorber Jan 1, 2024
2788998
1.13.2
atorber Jan 2, 2024
d397db3
1.13.2
atorber Jan 5, 2024
a68a3ee
Merge branch 'main' into 3.9.2.23
atorber Jan 5, 2024
a9b060f
1.13.2
atorber Jan 9, 2024
cc171f4
1.13.2
atorber Jan 9, 2024
4ef747e
Merge pull request #5 from atorber/3.9.2.23
atorber Jan 9, 2024
7f8d6f1
Update .npmignore
atorber Jan 9, 2024
c1575cd
Update .gitignore
atorber Jan 9, 2024
a76931c
Merge pull request #6 from atorber/3.9.2.23
atorber Jan 9, 2024
f030e9c
Merge branch 'main' into main
atorber Jan 9, 2024
60333db
1.13.2删除agent的ts文件
atorber Jan 10, 2024
17e269b
Merge pull request #7 from atorber/3.9.2.23
atorber Jan 10, 2024
7f59bcb
Merge branch 'main' into main
atorber Jan 10, 2024
77d2075
1.13.4
atorber Jan 10, 2024
1e308b9
Merge pull request #8 from atorber/3.9.2.23
atorber Jan 10, 2024
4955de7
Merge branch 'main' into main
atorber Jan 10, 2024
d1fb18b
1.13.5
atorber Jan 12, 2024
8243c3b
Update init-agent-script.ts
atorber Jan 12, 2024
e9f16c5
1.13.5
atorber Jan 13, 2024
3abc2bf
Merge branch '3.9.2.23'
atorber Jan 13, 2024
eabf3d1
Merge branch 'main' into main
atorber Jan 13, 2024
e5c6981
1.13.6
atorber Jan 19, 2024
48f9ba6
Merge branch '3.9.2.23'
atorber Jan 19, 2024
b54418c
del png file
atorber Jan 19, 2024
9bfac54
Merge branch '3.9.2.23' of https://github.com/atorber/puppet-xp into …
atorber Jan 19, 2024
0533e0f
Update init-agent-script.js
atorber Jan 19, 2024
a46d99c
Merge pull request #9 from atorber/3.9.2.23
atorber Jan 19, 2024
5935308
1.13.7 修复@好友出现两个昵称的bug
atorber Jan 19, 2024
bcfb55f
1.13.7 修复@好友昵称重复bug (#209)
atorber Jan 19, 2024
805d569
1.13.7
atorber Jan 19, 2024
ff5966b
Merge branch '3.9.2.23' into 3.9.2.23
atorber Jan 19, 2024
fb1ddb0
Merge pull request #10 from atorber/3.9.2.23
atorber Jan 19, 2024
c8afba9
Update README.md
atorber Jan 19, 2024
bcb26f2
Merge pull request #11 from atorber/3.9.2.23
atorber Jan 19, 2024
59287a5
Merge pull request #12 from wechaty/main
atorber Jan 19, 2024
81a96b3
1.13.8
atorber Jan 19, 2024
1b6b35e
Merge branch '3.9.2.23'
atorber Jan 19, 2024
c02395a
fixed send at msg err (#214)
atorber Jan 19, 2024
e776e0a
Add XP Discord Invite Link
huan Jan 20, 2024
3a9f7e5
Merge branch 'wechaty:main' into main
atorber Jan 21, 2024
eb9f9a6
fix layout of xp discord link
huan Jan 23, 2024
f1bc232
1.13.9
atorber Mar 13, 2024
9291df0
Merge pull request #13 from atorber/main
atorber Mar 14, 2024
bf72246
Merge branch 'main' into 3.9.2.23
atorber Mar 14, 2024
18ba707
1.13.10 删除测试wxid
atorber Mar 14, 2024
d052b72
1.13.11
atorber Mar 15, 2024
632e0fa
1.13.12
atorber Mar 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -81,9 +81,22 @@ Puppet|xp👍|
登录事件|✅
依赖协议|Windows

## VERSION SUPPORT

puppet-xp|wechat|
|:---|:---|
|1.11.14|[WeChat-v3.3.0.115](https://github.com/wechaty/wechaty-puppet-xp/releases/download/v0.5/WeChatSetup-v3.3.0.115.exe)|
|1.12.7|[WeChat-v3.6.0.18](https://github.com/tom-snow/wechat-windows-versions/releases/download/v3.6.0.18/WeChatSetup-3.6.0.18.exe)|
|1.3.x|[WeChat-v3.2.2.23](https://github.com/tom-snow/wechat-windows-versions/releases/download/v3.9.2.23/WeChatSetup-3.9.2.23.exe)|

## HISTORY

### main v1.12.0 (November 22, 2022)
### next v1.13.0 (September 21, 2023)

1. This version start to support WeChat v3.9.2.23,need to update WeChat on your pc to 3.9.2.23
2. [WeChatSetup-v3.2.2.23.exe](https://github.com/tom-snow/wechat-windows-versions/releases/download/v3.9.2.23/WeChatSetup-3.9.2.23.exe)

### main v1.12.7 (November 22, 2022)

1. This version start to support WeChat v3.6.0.18,need to update WeChat on your pc to 3.6.0.18
2. [WeChatSetup-v3.6.0.18.exe](https://github.com/tom-snow/wechat-windows-versions/releases/download/v3.6.0.18/WeChatSetup-3.6.0.18.exe)
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "wechaty-puppet-xp",
"version": "1.12.7",
"version": "1.13.0",
"description": "Puppet XP for Wechaty",
"type": "module",
"exports": {
472 changes: 239 additions & 233 deletions src/agents/agent-script-3.6.0.18.js

Large diffs are not rendered by default.

801 changes: 801 additions & 0 deletions src/agents/agent-script-3.9.2.23-laozhang-raw.js

Large diffs are not rendered by default.

1,899 changes: 1,899 additions & 0 deletions src/agents/agent-script-3.9.2.23.js

Large diffs are not rendered by default.

2,208 changes: 481 additions & 1,727 deletions src/init-agent-script.js

Large diffs are not rendered by default.

14 changes: 8 additions & 6 deletions src/puppet-xp.ts
Original file line number Diff line number Diff line change
@@ -108,6 +108,7 @@ class PuppetXp extends PUPPET.Puppet {
this.#sidecar = new WeChatSidecar()

await attach(this.sidecar)
void this.onLogin()

this.sidecar.on('hook', ({ method, args }) => {
log.verbose('PuppetXp', 'onHook(%s, %s)', method, JSON.stringify(args))
@@ -141,15 +142,16 @@ class PuppetXp extends PUPPET.Puppet {

private async onAgentReady () {
log.verbose('PuppetXp', 'onAgentReady()')
const isLoggedIn = await this.sidecar.isLoggedIn()
if (!isLoggedIn) {
await this.sidecar.callLoginQrcode(false)
}
// const isLoggedIn = await this.sidecar.isLoggedIn()
// if (!isLoggedIn) {
// await this.sidecar.callLoginQrcode(false)
// }
}

private async onLogin () {

const selfInfoRaw = JSON.parse(await this.sidecar.getMyselfInfo())
// console.debug('selfInfoRaw:\n\n\n', selfInfoRaw)
const selfInfo: PUPPET.payloads.Contact = {
alias: '',
avatar: selfInfoRaw.head_img_url,
@@ -567,7 +569,7 @@ class PuppetXp extends PUPPET.Puppet {
id: roomId,
memberIdList: roomMember,
ownerId: '',
topic: topic,
topic,
}
this.roomStore[roomId] = room
delete this.contactStore[roomId]
@@ -834,7 +836,7 @@ class PuppetXp extends PUPPET.Puppet {
}
}

if ([PUPPET.types.Message.Video, PUPPET.types.Message.Audio].includes(message?.type || PUPPET.types.Message.Unknown)) {
if ([ PUPPET.types.Message.Video, PUPPET.types.Message.Audio ].includes(message?.type || PUPPET.types.Message.Unknown)) {
this.notSupported('Video/`Audio')
}
return FileBox.fromFile(
82 changes: 50 additions & 32 deletions src/wechat-sidecar.ts
Original file line number Diff line number Diff line change
@@ -37,6 +37,7 @@ import { codeRoot } from './cjs.js'
const supportedVersions = {
v330115:'3.3.0.115',
v360000:'3.6.0.18',
v39223:'3.9.2.23',
}

// let initAgentScript = fs.readFileSync(path.join(
@@ -46,7 +47,11 @@ const supportedVersions = {
// 'agent-script-3.3.0.115.js',
// ), 'utf-8')

let initAgentScript = ''
let initAgentScript = fs.readFileSync(path.join(
codeRoot,
'src',
'init-agent-script.js',
), 'utf-8')

try {
// const wechatVersion = new WeChatVersion()
@@ -58,7 +63,7 @@ try {

// await detach(wechatVersion)

const currentVersion = '3.6.0.18'
const currentVersion = '3.9.2.23'

switch (currentVersion) {
case supportedVersions.v330115:
@@ -82,6 +87,19 @@ try {
'init-agent-script.js',
), 'utf-8')
break
case supportedVersions.v39223:
// initAgentScript = fs.readFileSync(path.join(
// codeRoot,
// 'src',
// 'agents',
// 'agent-script-3.6.0.18.js',
// ), 'utf-8')
initAgentScript = fs.readFileSync(path.join(
codeRoot,
'src',
'init-agent-script.js',
), 'utf-8')
break
default:
throw new Error(`Wechat version not supported. \nWechat version: ${currentVersion}, supported version: ${JSON.stringify(supportedVersions)}`)
}
@@ -90,8 +108,8 @@ try {
@Sidecar('WeChat.exe', initAgentScript)
class WeChatSidecar extends SidecarBody {

@Call(agentTarget('getTestInfoFunction'))
getTestInfo ():Promise<string> { return Ret() }
// @Call(agentTarget('getTestInfoFunction'))
// getTestInfo ():Promise<string> { return Ret() }

@Call(agentTarget('getChatroomMemberNickInfoFunction'))
getChatroomMemberNickInfo (
@@ -117,10 +135,10 @@ class WeChatSidecar extends SidecarBody {
@Call(agentTarget('checkSupportedFunction'))
checkSupported ():Promise<Boolean> { return Ret() }

@Call(agentTarget('callLoginQrcodeFunction'))
callLoginQrcode (
forceRefresh: boolean,
):Promise<null> { return Ret(forceRefresh) }
// @Call(agentTarget('callLoginQrcodeFunction'))
// callLoginQrcode (
// forceRefresh: boolean,
// ):Promise<null> { return Ret(forceRefresh) }

@Call(agentTarget('getContactNativeFunction'))
getContact ():Promise<string> { return Ret() }
@@ -167,30 +185,30 @@ class WeChatSidecar extends SidecarBody {
@ParamType('int32', 'U32') isMyMsg: number, // add isMyMsg type
) { return Ret(msgType, contactId, text, groupMsgSenderId, xmlContent, isMyMsg) }

@Hook(agentTarget('checkQRLoginNativeCallback'))
checkQRLogin (
@ParamType('int32', 'U32') status: number,
@ParamType('pointer', 'Utf8String') qrcodeUrl: string,
@ParamType('pointer', 'Utf8String') wxid: string,
@ParamType('pointer', 'Utf8String') avatarUrl: string,
@ParamType('pointer', 'Utf8String') nickname: string,
@ParamType('pointer', 'Utf8String') phoneType: string,
@ParamType('int32', 'U32') phoneClientVer: number,
@ParamType('pointer', 'Utf8String') pairWaitTip: string,
) { return Ret(status, qrcodeUrl, wxid, avatarUrl, nickname, phoneType, phoneClientVer, pairWaitTip) }

@Hook(agentTarget('hookLogoutEventCallback'))
logoutEvent (
@ParamType('int32', 'U32') bySrv: number,
) { return Ret(bySrv) }

@Hook(agentTarget('hookLoginEventCallback'))
loginEvent (
) { return Ret() }

@Hook(agentTarget('agentReadyCallback'))
agentReady (
) { return Ret() }
// @Hook(agentTarget('checkQRLoginNativeCallback'))
// checkQRLogin (
// @ParamType('int32', 'U32') status: number,
// @ParamType('pointer', 'Utf8String') qrcodeUrl: string,
// @ParamType('pointer', 'Utf8String') wxid: string,
// @ParamType('pointer', 'Utf8String') avatarUrl: string,
// @ParamType('pointer', 'Utf8String') nickname: string,
// @ParamType('pointer', 'Utf8String') phoneType: string,
// @ParamType('int32', 'U32') phoneClientVer: number,
// @ParamType('pointer', 'Utf8String') pairWaitTip: string,
// ) { return Ret(status, qrcodeUrl, wxid, avatarUrl, nickname, phoneType, phoneClientVer, pairWaitTip) }

// @Hook(agentTarget('hookLogoutEventCallback'))
// logoutEvent (
// @ParamType('int32', 'U32') bySrv: number,
// ) { return Ret(bySrv) }

// @Hook(agentTarget('hookLoginEventCallback'))
// loginEvent (
// ) { return Ret() }

// @Hook(agentTarget('agentReadyCallback'))
// agentReady (
// ) { return Ret() }

}