Skip to content

Commit ac3b849

Browse files
committed
尝试避免LevelDB在启动的时候读取失败
1 parent f500d64 commit ac3b849

File tree

3 files changed

+62
-47
lines changed

3 files changed

+62
-47
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ LiteLoaderQQNT插件,用于比较完善的防撤回。
2525

2626
**使用LevelDB进行数据持久化储存**,默认****启用,需要手动去设置里开启。如果不开启,重启QQ消息会丢失。若开启,当前版本重启QQ后**已能恢复文字、图片、转发和表情消息**,其他消息不提供保证,若不能恢复请提`ISSUE`
2727

28+
`LevelDB`有时候启动的时候会加载失败,导致无法加载反撤回数据库内容。如果发现之前的反撤回失效,重启QQ一般都能解决(目前正在尽力避免这种问题)。
29+
2830
如果你需要调整撤回样式,请前往插件的设置界面,手动修改调整。
2931

3032
不建议手动修改配置文件,修改后不会实时生效(需要重启QQ),建议用配置界面修改。

main.js

Lines changed: 59 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -108,55 +108,68 @@ async function onLoad(plugin) {
108108
});
109109
});
110110

111-
(async () => {
112-
if (nowConfig.saveDb) {
113-
output("Loading recalled msgs from db...");
114-
var counter = 0;
115-
for await (const value of db.values()) {
116-
counter++;
117-
recalledMsg.push(value);
118-
if (value.msg == null) continue;
119-
for (item of value.msg.elements) {
120-
if (item.picElement != null) {
121-
item.picElement.thumbPath = new Map([
122-
[
123-
0,
124-
item.picElement.sourcePath
125-
.replace("Ori", "Thumb")
126-
.replace(
127-
item.picElement.md5HexStr,
128-
item.picElement.md5HexStr + "_0"
129-
)
130-
],
131-
[
132-
198,
133-
item.picElement.sourcePath
134-
.replace("Ori", "Thumb")
135-
.replace(
136-
item.picElement.md5HexStr,
137-
item.picElement.md5HexStr + "_198"
138-
)
139-
],
140-
[
141-
720,
142-
item.picElement.sourcePath
143-
.replace("Ori", "Thumb")
144-
.replace(
145-
item.picElement.md5HexStr,
146-
item.picElement.md5HexStr + "_720"
147-
)
148-
]
149-
]);
150-
}
111+
loadDb()
112+
.catch(async (e) => {
113+
output(
114+
"Error while loading recalled msgs from db: " + e.toString(),
115+
", retrying..."
116+
);
117+
await loadDb();
118+
})
119+
.catch((e) => {
120+
output(
121+
"Error while loading recalled msgs from db: " + e.toString(),
122+
", stop load."
123+
);
124+
});
125+
}
126+
127+
async function loadDb() {
128+
if (nowConfig.saveDb) {
129+
output("Loading recalled msgs from db...");
130+
var counter = 0;
131+
for await (const value of db.values()) {
132+
counter++;
133+
recalledMsg.push(value);
134+
if (value.msg == null) continue;
135+
for (item of value.msg.elements) {
136+
if (item.picElement != null) {
137+
item.picElement.thumbPath = new Map([
138+
[
139+
0,
140+
item.picElement.sourcePath
141+
.replace("Ori", "Thumb")
142+
.replace(
143+
item.picElement.md5HexStr,
144+
item.picElement.md5HexStr + "_0"
145+
)
146+
],
147+
[
148+
198,
149+
item.picElement.sourcePath
150+
.replace("Ori", "Thumb")
151+
.replace(
152+
item.picElement.md5HexStr,
153+
item.picElement.md5HexStr + "_198"
154+
)
155+
],
156+
[
157+
720,
158+
item.picElement.sourcePath
159+
.replace("Ori", "Thumb")
160+
.replace(
161+
item.picElement.md5HexStr,
162+
item.picElement.md5HexStr + "_720"
163+
)
164+
]
165+
]);
151166
}
152167
}
153-
output(`Loaded ${counter} msgs.`);
154-
} else {
155-
output("Db saving is disabled, continue.");
156168
}
157-
})().catch((e) => {
158-
output("Error while loading recalled msgs from db: " + e.toString());
159-
});
169+
output(`Loaded ${counter} msgs.`);
170+
} else {
171+
output("Db saving is disabled, continue.");
172+
}
160173
}
161174

162175
var msgFlow = [];

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"name": "防撤回",
55
"slug": "anti_recall",
66
"description": "防止QQNT撤回消息",
7-
"version": "0.2.17",
7+
"version": "0.2.18",
88
"thumbnail": "./icon.png",
99
"author": {
1010
"name": "XiaoHe321",

0 commit comments

Comments
 (0)