SuperAPI AI 工具集

evernote-sdk-patterns

通用与其它

查看项目

更新于 10-15 23:25

技能介绍

用途:这是一套 Evernote SDK 生产级开发模式,用于实现复杂笔记操作、批量处理、搜索查询,并优化 SDK 调用。前提是已完成安装与认证,并了解 Evernote 数据模型(Notes、Notebooks、Tags、Resources),熟悉 async/await 与 Promise。

主要能力:

  1. 搜索:用 NoteFilter 设置查询词与排序,配合 NotesMetadataResultSpec 只取所需元数据字段,避免拉取全文;示例 filter 使用 words: 'tag:important notebook:Work',order 为 NoteSortOrder.UPDATED,再调用 findNotesMetadata(filter, 0, 100, spec)。
  2. 带附件创建笔记:对文件 buffer 计算 MD5,创建 Resource 并设置 data.body、mime,在 ENML 中用 en-media type/hash 嵌入,再赋值 note.resources 后 createNote。
  3. 错误处理封装:区分 EDAMUserException(客户端错误)、EDAMSystemException(限流、维护)、EDAMNotFoundException(无效 GUID),用 error.rateLimitDuration 做重试延迟。
  4. 批量操作:按可配置延迟顺序处理,遇限流等待 rateLimitDuration 秒后重试,并用回调跟踪进度。
  5. 标签与笔记本管理:实现 getOrCreateTag() 与 getOrCreateNotebook() 幂等操作,创建前用 listTags()/listNotebooks() 检查存在性。

常见错误处理:RATE_LIMIT_REACHED 用 rateLimitDuration 并在批处理项间加延迟;BAD_DATA_FORMAT 因无效 ENML,发送前用 wrapInENML() 校验;DATA_CONFLICT 因并发修改,重新获取元数据再重试;QUOTA_REACHED 因存储满,通过 user.accounting 检查剩余配额。

限制:资料未提供具体价格、平台范围或官方收录信息;完整九种模式的实现细节需查阅其 Implementation Guide,进一步笔记创建流程可参考 evernote-core-workflow-a。