OmniStacksStaticModules 2.0.0
Loading...
Searching...
No Matches
ReminderSync Module Reference

将带截止日期的 Stacks 任务同步到 Apple Reminders / OmniFocus。 More...

Classes

struct  ReminderSync::TaskReminder
 与外部应用同步所需的最小任务快照。 More...
struct  ReminderSync::SyncOptions
 外部应用同步选项。 More...
struct  ReminderSync::SyncResult
 同步结果;每个后端独立报告成败,便于 CLI 精确展示。 More...

Enumerations

enum class  ReminderSync::Provider { ReminderSync::reminders , ReminderSync::omnifocus , ReminderSync::both }
 提醒事项提供方;both 表示两个目标都执行。 More...
enum class  ReminderSync::SyncError {
  ReminderSync::invalid_task_id , ReminderSync::due_date_required , ReminderSync::invalid_due_date , ReminderSync::osascript_unavailable ,
  ReminderSync::reminders_failed , ReminderSync::omnifocus_failed , ReminderSync::process_failure
}
 可恢复同步错误分类。 More...

Functions

std::expected< SyncResult, SyncError > ReminderSync::sync_task (const TaskReminder &task, Provider provider, const SyncOptions &options={})
 将一个任务同步到指定外部应用。
std::string ReminderSync::build_reminders_script ()
 返回可在 osacompile 中独立编译的 Reminders AppleScript 源。
std::string ReminderSync::build_omnifocus_script ()
 返回可在 osacompile 中独立编译的 OmniFocus AppleScript 源。
std::string ReminderSync::provider_name (Provider provider) noexcept
 Provider 到 CLI/日志稳定名称。
std::string_view ReminderSync::sync_error_message (SyncError error) noexcept
 SyncError 到稳定可读文本。

Detailed Description

将带截止日期的 Stacks 任务同步到 Apple Reminders / OmniFocus。

安全约束:用户字段只作为 osascript 的独立 argv 传入 AppleScript, 不拼接 shell 命令,因此标题中的引号、换行和 $() 不会形成命令注入。

同步协议:

  • 每个任务备注追加 [Stacks-ID:<id>] 隐藏标记;
  • Reminders/OmniFocus 先按标记查找,存在则更新,不存在才创建;
  • 截止日期必须是有效 YYYY-MM-DD,真正调用外部应用前会拒绝空日期;
  • dry-run 只验证脚本与入参,不启动 AppleScript,也不产生外部数据。

Files

file  /Users/runner/work/CXX-CMake-template/CXX-CMake-template/single-exe-static-modules/modules/reminder_sync/include/ReminderSync.cppm