PKU harness

todo

待办事项的数据类型 Todo 和 TodoInput,供 services.todos 使用。

这个模块定义了待办事项的数据类型。插件通过 services.todos 读取、添加或修改用户的待办时,用的就是这些类型。每条待办可以带一个提醒,提醒由调度器中的任务负责发出。

源码:packages/sdk/src/todo.ts。

type Todo = {
  id: string;
  title: string;
  notes: string | null;
  dueAt: number | null;
  doneAt: number | null;
  /** 调度器中对应的提醒任务(如果有)。 */
  jobId: string | null;
  createdAt: number;
};

type TodoInput = {
  title: string;
  notes?: string | null;
  dueAt?: number | null;
  /** 何时提醒;null 表示不提醒。使用触发器(Trigger)可以设置重复提醒。 */
  remind?: Trigger | null;
};

下面的例子添加一条周五 23:59 截止的待办,并在前一天晚上 8 点提醒:

// 周五 23:59 截止的待办,前一天晚上 8 点提醒
const due = new Date(2026, 9, 30, 23, 59).getTime();
await ctx.services.todos.add(
  { title: '交高数作业', dueAt: due, remind: { type: 'at', at: new Date(2026, 9, 29, 20, 0).getTime() } },
  'plugin',
);

完成与删除

调用 setDone(id, true) 把待办标为完成时,它的提醒任务会暂停;调用 setDone(id, false) 取消完成,提醒任务会重新启用。删除待办时,对应的提醒任务也会一起删除。

本页目录