DooTask Tools
一个用于与 DooTask 系统交互的 Python 客户端库,提供了完整的 API 封装和类型支持。支持用户管理、消息通信、项目管理、任务协作等功能。
安装
pip install dootask-tools
快速开始
from dootask import DooTaskClient
# 创建客户端
client = DooTaskClient(
token="your_token_here",
# server="https://your-dootask-server.com", # 不传时默认 http://nginx
timeout=30,
)
# 获取用户信息
user = client.get_user_info()
print(f"用户: {user.nickname}")
说明:
server参数默认值为http://nginx,一般用于在 Docker / K8s 等环境中通过服务名nginx访问 DooTask 主程序,在这种部署方式下生产环境可以不显式传入server。
主要功能示例
发送消息
from dootask import SendMessageRequest, SendMessageToUserRequest
# 发送消息到指定对话
client.send_message(SendMessageRequest(
dialog_id=123,
text="Hello, World!",
text_type="md"
))
# 发送消息到用户
client.send_message_to_user(SendMessageToUserRequest(
userid=456,
text="私信内容",
text_type="md"
))
项目和任务管理
from dootask import CreateProjectRequest, CreateTaskRequest, UpdateTaskRequest
# 创建项目
project = client.create_project(CreateProjectRequest(
name="新项目",
desc="项目描述",
columns="待办,进行中,已完成"
))
# 创建任务
task = client.create_task(CreateTaskRequest(
project_id=project.id,
name="新任务",
content="任务内容",
owner=[123]
))
# 更新任务
updated_task = client.update_task(UpdateTaskRequest(
task_id=task.id,
name="更新后的任务名",
content="更新后的内容"
))
群组管理
from dootask import CreateGroupRequest, AddGroupUserRequest
# 创建群组
group = client.create_group(CreateGroupRequest(
chat_name="新群组",
userids=[123, 456, 789]
))
# 添加群成员
client.add_group_user(AddGroupUserRequest(
dialog_id=group.id,
userids=[999]
))
应用菜单角标
from dootask import DooTaskClient
# appid/secret 缺省取环境变量 APP_ID / APP_SECRET(插件容器内置),也可显式传入
client = DooTaskClient(token="YOUR_TOKEN", appid="APP_ID", secret="APP_SECRET")
# 给单个用户的第一个菜单设置数字角标
client.set_app_badge(123, count=5)
# 给多个用户的指定菜单设置小红点
client.set_app_badge([123, 456], dot=True, menu_key="tasks")
# 清除角标(count=0 且 dot=False)
client.set_app_badge(123, menu_key="tasks")
API 方法列表
基础方法
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
DooTaskClient |
创建客户端实例 | token, server, timeout |
DooTaskClient |
用户相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
get_user_info |
获取用户信息 | no_cache: bool = False |
UserInfo |
check_user_identity |
检查用户身份 | identity: str |
UserInfo |
get_user_departments |
获取用户部门信息 | - | List[Department] |
get_users_basic |
获取多个用户基础信息 | userids: List[int] |
List[UserBasic] |
get_user_basic |
获取单个用户基础信息 | userid: int |
UserBasic |
机器人相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
get_bot_list |
获取机器人列表 | - | BotListResponse |
get_bot |
获取机器人信息 | GetBotRequest |
Bot |
create_bot |
创建机器人 | CreateBotRequest |
Bot |
update_bot |
更新机器人 | EditBotRequest |
Bot |
delete_bot |
删除机器人 | DeleteBotRequest |
None |
消息相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
send_message |
发送消息 | SendMessageRequest |
Optional[dict] |
send_message_to_user |
发送消息到用户 | SendMessageToUserRequest |
Optional[dict] |
send_bot_message |
发送机器人消息 | SendBotMessageRequest |
Optional[dict] |
send_anonymous_message |
发送匿名消息 | SendAnonymousMessageRequest |
Optional[dict] |
send_stream_message |
通知成员监听消息 | SendStreamMessageRequest |
Optional[dict] |
send_notice_message |
发送通知 | SendNoticeMessageRequest |
Optional[dict] |
send_template_message |
发送模板消息 | SendTemplateMessageRequest |
Optional[dict] |
get_message_list |
获取消息列表 | GetMessageListRequest |
DialogMessageListResponse |
search_message |
搜索消息(走 /api/search/message,可选 dialog_id) | SearchMessageRequest |
List[MessageSearchItem] |
get_message |
获取单个消息详情 | GetMessageRequest |
DialogMessage |
get_message_detail |
获取消息详情(兼容性) | GetMessageRequest |
DialogMessage |
withdraw_message |
撤回消息 | WithdrawMessageRequest |
None |
forward_message |
转发消息 | ForwardMessageRequest |
None |
toggle_message_todo |
切换消息待办状态 | ToggleMessageTodoRequest |
None |
get_message_todo_list |
获取消息待办列表 | GetMessageRequest |
List[TodoItem] |
mark_message_done |
完成待办(id 为待办数据ID,非消息ID) | MarkMessageDoneRequest |
None |
convert_webhook_message_to_ai |
转换webhook消息为AI对话格式 | ConvertWebhookMessageRequest |
ConvertWebhookMessageResponse |
对话相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
get_dialog_list |
获取对话列表 | TimeRangeRequest |
ResponsePaginate[DialogInfo] |
search_dialog |
搜索会话 | SearchDialogRequest |
List[DialogInfo] |
get_dialog_one |
获取单个会话信息 | GetDialogRequest |
DialogInfo |
get_dialog_user |
获取会话成员 | GetDialogUserRequest |
List[DialogMember] |
群组相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
create_group |
创建群组 | CreateGroupRequest |
DialogInfo |
edit_group |
修改群组 | EditGroupRequest |
None |
add_group_user |
添加群成员 | AddGroupUserRequest |
None |
remove_group_user |
移除群成员 | RemoveGroupUserRequest |
None |
exit_group |
退出群组 | dialog_id: int |
None |
transfer_group |
转让群组 | TransferGroupRequest |
None |
disband_group |
解散群组 | DisbandGroupRequest |
None |
项目管理相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
get_project_list |
获取项目列表 | GetProjectListRequest |
ResponsePaginate[Project] |
get_project |
获取项目信息 | GetProjectRequest |
Project |
create_project |
创建项目 | CreateProjectRequest |
Project |
update_project |
更新项目 | UpdateProjectRequest |
Project |
exit_project |
退出项目 | project_id: int |
None |
delete_project |
删除项目 | project_id: int |
None |
任务列表相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
get_column_list |
获取任务列表 | GetColumnListRequest |
ResponsePaginate[ProjectColumn] |
create_column |
创建任务列表 | CreateColumnRequest |
ProjectColumn |
update_column |
更新任务列表 | UpdateColumnRequest |
ProjectColumn |
delete_column |
删除任务列表 | column_id: int |
None |
任务相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
get_task_list |
获取任务列表 | GetTaskListRequest |
ResponsePaginate[ProjectTask] |
get_task |
获取任务信息 | GetTaskRequest |
ProjectTask |
get_task_content |
获取任务内容 | GetTaskContentRequest |
TaskContent |
get_task_files |
获取任务文件列表 | GetTaskFilesRequest |
List[TaskFile] |
create_task |
创建任务 | CreateTaskRequest |
ProjectTask |
create_sub_task |
创建子任务 | CreateSubTaskRequest |
ProjectTask |
update_task |
更新任务 | UpdateTaskRequest |
ProjectTask |
create_task_dialog |
创建任务对话 | CreateTaskDialogRequest |
CreateTaskDialogResponse |
archive_task |
归档任务 | task_id: int, archive_type: str |
None |
delete_task |
删除任务 | task_id: int, delete_type: str |
None |
系统相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
get_system_settings |
获取系统设置 | - | SystemSettings |
get_version |
获取版本信息 | - | VersionInfo |
应用角标相关接口
| 方法 | 描述 | 参数 | 返回值 |
|---|---|---|---|
set_app_badge |
设置应用菜单角标 | userid: int | List[int], count=0, dot=False, menu_key="" |
None |
主要数据类型
基础类型
Response[T]- 基础响应结构ResponsePaginate[T]- 分页响应结构
用户相关
UserInfo- 用户信息UserBasic- 用户基础信息Department- 部门信息
消息相关
SendMessageRequest- 发送消息请求DialogMessage- 对话消息DialogMessageListResponse- 消息列表响应MessageSearchItem- 消息搜索结果项TodoItem- 消息待办记录
对话相关
DialogInfo- 对话信息DialogMember- 对话成员
项目和任务相关
Project- 项目信息ProjectColumn- 项目列表ProjectTask- 项目任务TaskFile- 任务文件TaskContent- 任务内容
系统相关
SystemSettings- 系统设置VersionInfo- 版本信息
异常处理
from dootask import (
DooTaskException,
DooTaskAPIException,
DooTaskHTTPException,
DooTaskAuthException,
DooTaskPermissionException
)
try:
user = client.get_user_info()
except DooTaskAuthException:
print("认证失败,请检查 token")
except DooTaskPermissionException:
print("权限不足")
except DooTaskAPIException as e:
print(f"API 错误: {e}")
except DooTaskHTTPException as e:
print(f"网络错误: {e}")
except DooTaskException as e:
print(f"其他错误: {e}")
缓存机制
客户端内置用户信息缓存机制,默认缓存时间为10分钟:
# 强制刷新缓存
user = client.get_user_info(no_cache=True)
# 使用缓存(默认)
user = client.get_user_info()
许可证
MIT License
Metadata
Release files for dootask-tools 1.3.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dootask_tools-1.3.6.tar.gz | 19.0 kB | Without provenance | Details for dootask_tools-1.3.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dootask_tools-1.3.6-py3-none-any.whl | Python 3 | none | any | Details for dootask_tools-1.3.6-py3-none-any.whl |
Total release size: 35.0 kB
Release files / dootask_tools-1.3.6.tar.gz
| Download URL | dootask_tools-1.3.6.tar.gz |
|---|---|
| Size | 19.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3414ada02565d43f86b34dd792a9b75966f52e5806b58443064dfaef87c9c051
|
|
BLAKE2b-256 checksum How to use checksums |
4248c98e14680f99d2a4f22c341361736d4a88d6ac557b80da5b013a94a8e461
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / dootask_tools-1.3.6-py3-none-any.whl
| Download URL | dootask_tools-1.3.6-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ee5dc7a360bfca8eca95ce946908c8710ff6f869c05f4d26353587ab35d8e956
|
|
BLAKE2b-256 checksum How to use checksums |
6f03802a8502d5e576d31db0d9785aafbfa2e6fdcec3903f08b5a280cea431f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Security for dootask-tools 1.3.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.