dsh-napcat-keeper 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/lib/index.js +17 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.7.1 — 搬迁时不留半截副本
|
|
4
|
+
- **修的什么**:2.7.0 的自动搬迁里,「rename 失败就复制再删」这两步原先裹在同一个 `try` 里。碰上源文件正被别的进程攥着(比如 QQ 那条 cmd 还在往 `launch.log` 里追加),`copyFileSync` 会成功、`unlinkSync` 会失败 —— 结果目标位落了个**残缺副本**,而且因为「目标已存在就跳过」,以后每次启动都不会再搬它,残缺文件就一直留在那儿。
|
|
5
|
+
- 现在两步分开:删不掉源文件就把刚复制的撤掉,返回「没搬成」,下次启动再试一遍。真正搬不动的文件原地不动,不污染新目录。
|
|
6
|
+
- 行为没别的变化,升级不用改配置。
|
|
7
|
+
|
|
3
8
|
## 2.7.0 — 插件自己的文件收进 `~/.dsh/dsh-napcat-keeper/`
|
|
4
9
|
- **为什么要动这个**:以前插件产生的东西全都摊在 `~/.dsh` 根上(配置、日志、状态、二维码、生成的 bat/vbs、提权脚本),和 DSH 自己的 `AGENT.md`、`profiles/`、一堆别的插件的文件混在一起,压根看不出哪些是它写的。现在一个目录装完自己的全部家当。
|
|
5
10
|
- **新布局**(`~/.dsh/dsh-napcat-keeper/`):
|
package/lib/index.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* dsh-napcat-keeper —— NapCat 看门狗 v2.7.
|
|
2
|
+
* dsh-napcat-keeper —— NapCat 看门狗 v2.7.1(可发布通用版)
|
|
3
3
|
*
|
|
4
4
|
* 解决的问题:DSH 是桌面应用,重启 DSH 时 NapCat(QQ 协议端) 不会跟着起来,
|
|
5
5
|
* 于是 dsh-qq-bridge 一直轮询一个死端口,你在 QQ 里说的话就石沉大海。
|
|
6
6
|
*
|
|
7
|
+
* v2.7.1:搬迁时别留半截副本
|
|
8
|
+
* - moveOne() 的复制兜底原来一把 try 包着「复制 + 删源」,源文件被别的进程攥着时
|
|
9
|
+
* 会出现「复制成功、删源失败」——目标位落了个残缺文件,之后每次搬迁都因为
|
|
10
|
+
* 「目标已存在」跳过它。现在分开处理:删不掉源就把复制的撤掉,下次启动再试。
|
|
11
|
+
*
|
|
7
12
|
* v2.7.0:自己的东西收进自己的目录(~/.dsh/dsh-napcat-keeper/)
|
|
8
13
|
* - 以前配置、日志、状态、二维码、生成的 bat/vbs、提权脚本全散在 ~/.dsh 根上,
|
|
9
14
|
* 和 DSH 自己的文件混在一起,一眼看不出哪些是插件产生的;
|
|
@@ -122,7 +127,7 @@ import { homedir, tmpdir } from 'node:os'
|
|
|
122
127
|
import path from 'node:path'
|
|
123
128
|
|
|
124
129
|
export const name = 'napcat-keeper'
|
|
125
|
-
export const version = '2.7.
|
|
130
|
+
export const version = '2.7.1'
|
|
126
131
|
|
|
127
132
|
/** tools 用来注册 napcat_* 工具;webServer 用来挂设置界面接口。拿不到也不至于把 DSH 拖崩。 */
|
|
128
133
|
export const inject = ['tools', 'webServer']
|
|
@@ -280,11 +285,21 @@ function moveOne(from, to) {
|
|
|
280
285
|
renameSync(from, to)
|
|
281
286
|
return true
|
|
282
287
|
} catch {
|
|
288
|
+
// 同卷 rename 失败:跨卷,或者文件正被别的进程攥着(cmd 重定向写着日志那种)。
|
|
289
|
+
// 退回复制再删;连删除都不让的话,把复制的半截撤掉 —— 别在目标位留个残缺文件,
|
|
290
|
+
// 它会挡住以后每一次搬迁(目标已存在就跳过)。
|
|
283
291
|
try {
|
|
284
292
|
copyFileSync(from, to)
|
|
293
|
+
} catch {
|
|
294
|
+
return false
|
|
295
|
+
}
|
|
296
|
+
try {
|
|
285
297
|
unlinkSync(from)
|
|
286
298
|
return true
|
|
287
299
|
} catch {
|
|
300
|
+
try {
|
|
301
|
+
unlinkSync(to)
|
|
302
|
+
} catch {}
|
|
288
303
|
return false
|
|
289
304
|
}
|
|
290
305
|
}
|