SuperAPI AI 工具集

evernote-data-handling

数据与分析

查看项目

更新于 10-15 23:25

技能介绍

用途:为处理 Evernote 数据提供最佳实践,覆盖本地存储、笔记处理、附件管理与数据完整性保障。

主要能力:设计镜像 Evernote 数据模型的本地数据库结构(notes、notebooks、tags、resources 等表,含 guid、USN 等字段);解析 ENML 内容,可转为纯文本、HTML 或 Markdown,并在调用 API 前校验 ENML;通过 noteStore.getResource 下载附件,以 MD5 哈希命名本地文件并校验完整性;基于 USN 实现增量同步;导出为 ENEX、JSON 或 Markdown。

使用方式:先设计本地 schema,再处理 ENML,随后管理资源,最后实现同步与导出。增量同步先调用 getSyncState() 获取服务器当前 USN,再用 getSyncChunk(lastSyncUSN, 100, true) 拉取变更,按 notebooks、tags、notes、resources 顺序处理。示例:const syncState = await noteStore.getSyncState(); if (syncState.updateCount > lastSyncUSN) { const chunk = await noteStore.getSyncChunk(lastSyncUSN, 100, true); }。

适用场景:本地镜像笔记以支持无需 API 调用的全文搜索;将笔记本批量导出为 Markdown 并保留堆栈目录结构,附件存入 assets/ 目录。

限制与错误处理:需理解 Evernote 数据模型并准备数据库与文件存储;ENML 格式错误会触发 BAD_DATA_FORMAT,需在调用前做 DTD 校验;超出上传限制会触发 QUOTA_REACHED,创建笔记前检查 user.accounting.uploaded;笔记被修改会触发 DATA_CONFLICT,需按 GUID 重新获取并合并;同步出现 USN 区间缺口时需从 USN 0 全量同步。企业功能参见 evernote-enterprise-rbac。具体实现细节暂未提供。