Skip to content
This repository was archived by the owner on Jan 10, 2025. It is now read-only.

Commit 4fd2e7c

Browse files
committed
fix: 🐛 修复登出状态会上报多次logout事件
1 parent cf94411 commit 4fd2e7c

File tree

5 files changed

+33
-27
lines changed

5 files changed

+33
-27
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@
7272
"pnpm": {
7373
"patchedDependencies": {
7474
75-
75+
76+
7677
}
7778
}
7879
}

patches/[email protected]

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/dist/cjs/src/mixins/login-mixin.js b/dist/cjs/src/mixins/login-mixin.js
2+
index 01c9a9caea23816ebdd36398bb2cd1f4f0e85559..d273c203e0d41262559cc3c85543485b4affb4ea 100644
3+
--- a/dist/cjs/src/mixins/login-mixin.js
4+
+++ b/dist/cjs/src/mixins/login-mixin.js
5+
@@ -110,6 +110,8 @@ const loginMixin = (mixinBase) => {
6+
this.__currentUserId = undefined;
7+
resolve();
8+
}));
9+
+ // bugfix: 修复wechat4u并未真正登出的问题
10+
+ this.wechat4u?.emit('logout');
11+
}
12+
/**
13+
* @deprecated use `currentUserId` instead. (will be removed in v2.0)

pnpm-lock.yaml

Lines changed: 10 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/utils/index.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
const fs = require('fs')
21
const { FileBox } = require('file-box')
32
const MIME = require('mime')
43
const { logger } = require('./log')
5-
const { memoryCardPath } = require('../config/const')
64
/**
75
* 下载媒体文件转化为Buffer
86
* @param {string} fileUrl
@@ -176,13 +174,13 @@ const sleep = async (ms) => {
176174
/**
177175
* 删除登录缓存文件
178176
*/
179-
const deleteMemoryCard = () => {
180-
//@ts-expect-errors 必定是 pathlike
181-
if (fs.existsSync(memoryCardPath)) {
182-
//@ts-expect-errors 必定是 pathlike
183-
fs.unlinkSync(memoryCardPath)
184-
}
185-
}
177+
// const deleteMemoryCard = () => {
178+
// //@ts-expect-errors 必定是 pathlike
179+
// if (fs.existsSync(memoryCardPath)) {
180+
// //@ts-expect-errors 必定是 pathlike
181+
// fs.unlinkSync(memoryCardPath)
182+
// }
183+
// }
186184

187185
module.exports = {
188186
...require('./msg.js'),
@@ -196,6 +194,5 @@ module.exports = {
196194
parseJsonLikeStr,
197195
tryConvertCnCharToUtf8Char,
198196
sleep,
199-
Defer,
200-
deleteMemoryCard
197+
Defer
201198
}

src/wechaty/init.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,26 +60,17 @@ module.exports = function init() {
6060
Utils.logger.error('上报login事件给 RECVD_MSG_API 出错', e)
6161
}
6262
)
63-
64-
//TODO: test code
65-
// setTimeout(function () {
66-
// bot.logout()
67-
// }, 5000)
6863
})
6964

7065
// 登出事件
7166
.on('logout', async (user) => {
72-
Utils.deleteMemoryCard()
73-
7467
/** bugfix: 重置登录会触发多次logout,但是上报只需要登录成功后登出那一次 */
7568
if (!botLoginSuccessLastTime) return
7669

7770
botLoginSuccessLastTime = false
7871

7972
Utils.logger.info(chalk.red(`User ${user.toString()} logout`))
8073

81-
bot.reset()
82-
8374
// 登出时给接收消息api发送特殊文本
8475
Service.sendMsg2RecvdApi(
8576
new SystemEvent({ event: 'logout', user })

0 commit comments

Comments
 (0)