feat: 内置阅读器、批注笔记与 AI 助手,发布 1.3.0
新增 PDF/EPUB/MOBI/AZW 内置阅读器,PDF 分段读取支持超大文件, 批注、读书与画布笔记、封面生成与本地导入。AI 助手支持三种协议、 图像上下文与安全 Markdown 渲染,上下文范围改为 选中/当前页/全文, 页面与全文无需选中文本即可发送,全文会提示可能超出模型限制。 便携版输出目录固定为 PeopleLib-windows-x64,不再随版本号变化, 避免升级后 data/ 被遗留在旧目录。 Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
parent
b8c8d24107
commit
3ccd044527
@@ -1,4 +1,4 @@
|
||||
const { fetchJson, clampPage } = require('./http');
|
||||
const { fetchJson, clampPage, isRetryable } = require('./http');
|
||||
|
||||
const PAGE_SIZE = 30;
|
||||
const CATALOG_START = '2000-01-01';
|
||||
@@ -29,7 +29,8 @@ async function fetchWindow(server, from, to, cursor, tries = 3) {
|
||||
return { total, collection: j.collection || [] };
|
||||
} catch (e) {
|
||||
last = e;
|
||||
if (!/504|502|503/.test(e.message)) throw e;
|
||||
// 超时与网络抖动是这里最常见的瞬时故障,必须一并重试
|
||||
if (!isRetryable(e) || i === tries - 1) throw e;
|
||||
await new Promise((r) => setTimeout(r, 1500 * (i + 1)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user