这个项目能做什么

ticktick-py-v2 是一个围绕 TickTick 非官方 `api/v2` 端点的 Python 包装器,该端点是网页应用和桌面客户端使用的内部接口。作者将其作为 TickTick 官方 OAuth API 的替代方案,后者涵盖任务和项目,但将习惯设为只读,并且没有专注/番茄钟端点。 根据 README,该库暴露了以下内容: - 任务和项目:读取活动任务和项目列表,创建任务,完成任务,并用项目属性(例如项目名称)丰富任务对象。 - 习惯:读取签到(例如,在给定日期戳之后)并发布签到,README 建议这是一种从另一个数据源回填习惯历史的方法。 - 专注/番茄钟:读取一天偏移量内的专注会话,检查当前是否正在运行会话,并添加历史会话的专注记录(开始/结束时间戳)。 - 日历事件:检索所有事件。 README 中的设计说明: - API 以普通函数的形式暴露,而不是状态客户端类;每个调用都接受一个可选的 `headers` 参数,因此可以一次性通过 `get_authenticated_ticktick_headers()` 获取身份验证头,并重复使用,或者在每次调用时新鲜获取(一旦登录被缓存到磁盘,这非常便宜)。 - 身份验证使用正常的登录会话(cookie),而不是 OAuth。凭据可以通过 `TICKTICK_EMAIL` 和 `TICKTICK_PASSWORD` 环境变量提供,一个无头 Selenium 会话处理登录并缓存 cookie;或者可以手动将 cookie 导出到 `.ticktick-cookies.json` 文件中。 - 返回值是 pydantic `BaseModel` 实例,可以使用 `.model_dump()` 或 `.model_dump(by_alias=True)` 转换为 TickTick 的原生 camelCase 字段名称。 安装通过 `pip install ticktick-py-v2` 进行;测试使用 pytest 对包含的 `tests/` 目录运行。仓库组织为 `cookies_login.py`、`events.py`、`focus.py`、`habits.py`、`tasks.py`,以及 `utils/` 和 `web/` 内部文件。 README 明确指出了主要权衡:这是一个非官方的、反向工程的 API,它通过用户的登录会话进行身份验证,如果 TickTick 更改其内部端点,则可能会中断。贡献部分邀请针对未覆盖的端点(例如,重复任务的边缘情况、子任务和提醒)提出问题和拉取请求,并要求在端点更改时提供失败的请求/响应详细信息。根据 Apache 2.0 许可。