dootask-tools


Namedootask-tools JSON
Version 0.0.7 PyPI version JSON
download
home_pagehttps://github.com/dootask/dootask-tools
SummaryDooTask Tools 客户端库
upload_time2025-07-24 23:54:34
maintainerNone
docs_urlNone
authorDooTask Team
requires_python>=3.7
licenseNone
keywords dootask api client chat project management collaboration
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DooTask Tools

一个用于与 DooTask 系统交互的 Python 客户端库,提供了完整的 API 封装和类型支持。支持用户管理、消息通信、项目管理、任务协作等功能。

## 安装

```bash
pip install dootask-tools
```

## 快速开始

```python
from dootask import DooTaskClient

# 创建客户端
client = DooTaskClient(
    token="your_token_here",
    server="https://your-dootask-server.com",
    timeout=30
)

# 获取用户信息
user = client.get_user_info()
print(f"用户: {user.nickname}")
```

## 主要功能示例

### 发送消息

```python
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"
))
```

### 项目和任务管理

```python
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="更新后的内容"
))
```

### 群组管理

```python
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]
))
```

## 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` | `None` |
| `send_message_to_user` | 发送消息到用户 | `SendMessageToUserRequest` | `None` |
| `send_bot_message` | 发送机器人消息 | `SendBotMessageRequest` | `None` |
| `send_anonymous_message` | 发送匿名消息 | `SendAnonymousMessageRequest` | `None` |
| `get_message_list` | 获取消息列表 | `GetMessageListRequest` | `DialogMessageListResponse` |
| `search_message` | 搜索消息 | `SearchMessageRequest` | `DialogMessageSearchResponse` |
| `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` | `TodoListResponse` |
| `mark_message_done` | 标记消息完成 | `MarkMessageDoneRequest` | `None` |

### 对话相关接口

| 方法 | 描述 | 参数 | 返回值 |
|------|------|------|--------|
| `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` |

## 主要数据类型

### 基础类型
- `Response[T]` - 基础响应结构
- `ResponsePaginate[T]` - 分页响应结构

### 用户相关
- `UserInfo` - 用户信息
- `UserBasic` - 用户基础信息
- `Department` - 部门信息

### 消息相关
- `SendMessageRequest` - 发送消息请求
- `DialogMessage` - 对话消息
- `DialogMessageListResponse` - 消息列表响应
- `TodoListResponse` - 待办列表响应

### 对话相关
- `DialogInfo` - 对话信息
- `DialogMember` - 对话成员

### 项目和任务相关
- `Project` - 项目信息
- `ProjectColumn` - 项目列表
- `ProjectTask` - 项目任务
- `TaskFile` - 任务文件
- `TaskContent` - 任务内容

### 系统相关
- `SystemSettings` - 系统设置
- `VersionInfo` - 版本信息

## 异常处理

```python
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分钟:

```python
# 强制刷新缓存
user = client.get_user_info(no_cache=True)

# 使用缓存(默认)
user = client.get_user_info()
```

## 许可证

MIT License 

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/dootask/dootask-tools",
    "name": "dootask-tools",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "dootask api client chat project management collaboration",
    "author": "DooTask Team",
    "author_email": "support@dootask.com",
    "download_url": "https://files.pythonhosted.org/packages/3e/a3/48de7601d1ac852f830390ffc039b2acc2cd5ff10ac867e69c33c1f07e57/dootask_tools-0.0.7.tar.gz",
    "platform": null,
    "description": "# DooTask Tools\n\n\u4e00\u4e2a\u7528\u4e8e\u4e0e DooTask \u7cfb\u7edf\u4ea4\u4e92\u7684 Python \u5ba2\u6237\u7aef\u5e93\uff0c\u63d0\u4f9b\u4e86\u5b8c\u6574\u7684 API \u5c01\u88c5\u548c\u7c7b\u578b\u652f\u6301\u3002\u652f\u6301\u7528\u6237\u7ba1\u7406\u3001\u6d88\u606f\u901a\u4fe1\u3001\u9879\u76ee\u7ba1\u7406\u3001\u4efb\u52a1\u534f\u4f5c\u7b49\u529f\u80fd\u3002\n\n## \u5b89\u88c5\n\n```bash\npip install dootask-tools\n```\n\n## \u5feb\u901f\u5f00\u59cb\n\n```python\nfrom dootask import DooTaskClient\n\n# \u521b\u5efa\u5ba2\u6237\u7aef\nclient = DooTaskClient(\n    token=\"your_token_here\",\n    server=\"https://your-dootask-server.com\",\n    timeout=30\n)\n\n# \u83b7\u53d6\u7528\u6237\u4fe1\u606f\nuser = client.get_user_info()\nprint(f\"\u7528\u6237: {user.nickname}\")\n```\n\n## \u4e3b\u8981\u529f\u80fd\u793a\u4f8b\n\n### \u53d1\u9001\u6d88\u606f\n\n```python\nfrom dootask import SendMessageRequest, SendMessageToUserRequest\n\n# \u53d1\u9001\u6d88\u606f\u5230\u6307\u5b9a\u5bf9\u8bdd\nclient.send_message(SendMessageRequest(\n    dialog_id=123,\n    text=\"Hello, World!\",\n    text_type=\"md\"\n))\n\n# \u53d1\u9001\u6d88\u606f\u5230\u7528\u6237\nclient.send_message_to_user(SendMessageToUserRequest(\n    userid=456,\n    text=\"\u79c1\u4fe1\u5185\u5bb9\",\n    text_type=\"md\"\n))\n```\n\n### \u9879\u76ee\u548c\u4efb\u52a1\u7ba1\u7406\n\n```python\nfrom dootask import CreateProjectRequest, CreateTaskRequest, UpdateTaskRequest\n\n# \u521b\u5efa\u9879\u76ee\nproject = client.create_project(CreateProjectRequest(\n    name=\"\u65b0\u9879\u76ee\",\n    desc=\"\u9879\u76ee\u63cf\u8ff0\",\n    columns=\"\u5f85\u529e,\u8fdb\u884c\u4e2d,\u5df2\u5b8c\u6210\"\n))\n\n# \u521b\u5efa\u4efb\u52a1\ntask = client.create_task(CreateTaskRequest(\n    project_id=project.id,\n    name=\"\u65b0\u4efb\u52a1\",\n    content=\"\u4efb\u52a1\u5185\u5bb9\",\n    owner=[123]\n))\n\n# \u66f4\u65b0\u4efb\u52a1\nupdated_task = client.update_task(UpdateTaskRequest(\n    task_id=task.id,\n    name=\"\u66f4\u65b0\u540e\u7684\u4efb\u52a1\u540d\",\n    content=\"\u66f4\u65b0\u540e\u7684\u5185\u5bb9\"\n))\n```\n\n### \u7fa4\u7ec4\u7ba1\u7406\n\n```python\nfrom dootask import CreateGroupRequest, AddGroupUserRequest\n\n# \u521b\u5efa\u7fa4\u7ec4\ngroup = client.create_group(CreateGroupRequest(\n    chat_name=\"\u65b0\u7fa4\u7ec4\",\n    userids=[123, 456, 789]\n))\n\n# \u6dfb\u52a0\u7fa4\u6210\u5458\nclient.add_group_user(AddGroupUserRequest(\n    dialog_id=group.id,\n    userids=[999]\n))\n```\n\n## API \u65b9\u6cd5\u5217\u8868\n\n### \u57fa\u7840\u65b9\u6cd5\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `DooTaskClient` | \u521b\u5efa\u5ba2\u6237\u7aef\u5b9e\u4f8b | `token, server, timeout` | `DooTaskClient` |\n\n### \u7528\u6237\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `get_user_info` | \u83b7\u53d6\u7528\u6237\u4fe1\u606f | `no_cache: bool = False` | `UserInfo` |\n| `check_user_identity` | \u68c0\u67e5\u7528\u6237\u8eab\u4efd | `identity: str` | `UserInfo` |\n| `get_user_departments` | \u83b7\u53d6\u7528\u6237\u90e8\u95e8\u4fe1\u606f | - | `List[Department]` |\n| `get_users_basic` | \u83b7\u53d6\u591a\u4e2a\u7528\u6237\u57fa\u7840\u4fe1\u606f | `userids: List[int]` | `List[UserBasic]` |\n| `get_user_basic` | \u83b7\u53d6\u5355\u4e2a\u7528\u6237\u57fa\u7840\u4fe1\u606f | `userid: int` | `UserBasic` |\n\n### \u673a\u5668\u4eba\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `get_bot_list` | \u83b7\u53d6\u673a\u5668\u4eba\u5217\u8868 | - | `BotListResponse` |\n| `get_bot` | \u83b7\u53d6\u673a\u5668\u4eba\u4fe1\u606f | `GetBotRequest` | `Bot` |\n| `create_bot` | \u521b\u5efa\u673a\u5668\u4eba | `CreateBotRequest` | `Bot` |\n| `update_bot` | \u66f4\u65b0\u673a\u5668\u4eba | `EditBotRequest` | `Bot` |\n| `delete_bot` | \u5220\u9664\u673a\u5668\u4eba | `DeleteBotRequest` | `None` |\n\n### \u6d88\u606f\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `send_message` | \u53d1\u9001\u6d88\u606f | `SendMessageRequest` | `None` |\n| `send_message_to_user` | \u53d1\u9001\u6d88\u606f\u5230\u7528\u6237 | `SendMessageToUserRequest` | `None` |\n| `send_bot_message` | \u53d1\u9001\u673a\u5668\u4eba\u6d88\u606f | `SendBotMessageRequest` | `None` |\n| `send_anonymous_message` | \u53d1\u9001\u533f\u540d\u6d88\u606f | `SendAnonymousMessageRequest` | `None` |\n| `get_message_list` | \u83b7\u53d6\u6d88\u606f\u5217\u8868 | `GetMessageListRequest` | `DialogMessageListResponse` |\n| `search_message` | \u641c\u7d22\u6d88\u606f | `SearchMessageRequest` | `DialogMessageSearchResponse` |\n| `get_message` | \u83b7\u53d6\u5355\u4e2a\u6d88\u606f\u8be6\u60c5 | `GetMessageRequest` | `DialogMessage` |\n| `get_message_detail` | \u83b7\u53d6\u6d88\u606f\u8be6\u60c5\uff08\u517c\u5bb9\u6027\uff09 | `GetMessageRequest` | `DialogMessage` |\n| `withdraw_message` | \u64a4\u56de\u6d88\u606f | `WithdrawMessageRequest` | `None` |\n| `forward_message` | \u8f6c\u53d1\u6d88\u606f | `ForwardMessageRequest` | `None` |\n| `toggle_message_todo` | \u5207\u6362\u6d88\u606f\u5f85\u529e\u72b6\u6001 | `ToggleMessageTodoRequest` | `None` |\n| `get_message_todo_list` | \u83b7\u53d6\u6d88\u606f\u5f85\u529e\u5217\u8868 | `GetMessageRequest` | `TodoListResponse` |\n| `mark_message_done` | \u6807\u8bb0\u6d88\u606f\u5b8c\u6210 | `MarkMessageDoneRequest` | `None` |\n\n### \u5bf9\u8bdd\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `get_dialog_list` | \u83b7\u53d6\u5bf9\u8bdd\u5217\u8868 | `TimeRangeRequest` | `ResponsePaginate[DialogInfo]` |\n| `search_dialog` | \u641c\u7d22\u4f1a\u8bdd | `SearchDialogRequest` | `List[DialogInfo]` |\n| `get_dialog_one` | \u83b7\u53d6\u5355\u4e2a\u4f1a\u8bdd\u4fe1\u606f | `GetDialogRequest` | `DialogInfo` |\n| `get_dialog_user` | \u83b7\u53d6\u4f1a\u8bdd\u6210\u5458 | `GetDialogUserRequest` | `List[DialogMember]` |\n\n### \u7fa4\u7ec4\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `create_group` | \u521b\u5efa\u7fa4\u7ec4 | `CreateGroupRequest` | `DialogInfo` |\n| `edit_group` | \u4fee\u6539\u7fa4\u7ec4 | `EditGroupRequest` | `None` |\n| `add_group_user` | \u6dfb\u52a0\u7fa4\u6210\u5458 | `AddGroupUserRequest` | `None` |\n| `remove_group_user` | \u79fb\u9664\u7fa4\u6210\u5458 | `RemoveGroupUserRequest` | `None` |\n| `exit_group` | \u9000\u51fa\u7fa4\u7ec4 | `dialog_id: int` | `None` |\n| `transfer_group` | \u8f6c\u8ba9\u7fa4\u7ec4 | `TransferGroupRequest` | `None` |\n| `disband_group` | \u89e3\u6563\u7fa4\u7ec4 | `DisbandGroupRequest` | `None` |\n\n### \u9879\u76ee\u7ba1\u7406\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `get_project_list` | \u83b7\u53d6\u9879\u76ee\u5217\u8868 | `GetProjectListRequest` | `ResponsePaginate[Project]` |\n| `get_project` | \u83b7\u53d6\u9879\u76ee\u4fe1\u606f | `GetProjectRequest` | `Project` |\n| `create_project` | \u521b\u5efa\u9879\u76ee | `CreateProjectRequest` | `Project` |\n| `update_project` | \u66f4\u65b0\u9879\u76ee | `UpdateProjectRequest` | `Project` |\n| `exit_project` | \u9000\u51fa\u9879\u76ee | `project_id: int` | `None` |\n| `delete_project` | \u5220\u9664\u9879\u76ee | `project_id: int` | `None` |\n\n### \u4efb\u52a1\u5217\u8868\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `get_column_list` | \u83b7\u53d6\u4efb\u52a1\u5217\u8868 | `GetColumnListRequest` | `ResponsePaginate[ProjectColumn]` |\n| `create_column` | \u521b\u5efa\u4efb\u52a1\u5217\u8868 | `CreateColumnRequest` | `ProjectColumn` |\n| `update_column` | \u66f4\u65b0\u4efb\u52a1\u5217\u8868 | `UpdateColumnRequest` | `ProjectColumn` |\n| `delete_column` | \u5220\u9664\u4efb\u52a1\u5217\u8868 | `column_id: int` | `None` |\n\n### \u4efb\u52a1\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `get_task_list` | \u83b7\u53d6\u4efb\u52a1\u5217\u8868 | `GetTaskListRequest` | `ResponsePaginate[ProjectTask]` |\n| `get_task` | \u83b7\u53d6\u4efb\u52a1\u4fe1\u606f | `GetTaskRequest` | `ProjectTask` |\n| `get_task_content` | \u83b7\u53d6\u4efb\u52a1\u5185\u5bb9 | `GetTaskContentRequest` | `TaskContent` |\n| `get_task_files` | \u83b7\u53d6\u4efb\u52a1\u6587\u4ef6\u5217\u8868 | `GetTaskFilesRequest` | `List[TaskFile]` |\n| `create_task` | \u521b\u5efa\u4efb\u52a1 | `CreateTaskRequest` | `ProjectTask` |\n| `create_sub_task` | \u521b\u5efa\u5b50\u4efb\u52a1 | `CreateSubTaskRequest` | `ProjectTask` |\n| `update_task` | \u66f4\u65b0\u4efb\u52a1 | `UpdateTaskRequest` | `ProjectTask` |\n| `create_task_dialog` | \u521b\u5efa\u4efb\u52a1\u5bf9\u8bdd | `CreateTaskDialogRequest` | `CreateTaskDialogResponse` |\n| `archive_task` | \u5f52\u6863\u4efb\u52a1 | `task_id: int, archive_type: str` | `None` |\n| `delete_task` | \u5220\u9664\u4efb\u52a1 | `task_id: int, delete_type: str` | `None` |\n\n### \u7cfb\u7edf\u76f8\u5173\u63a5\u53e3\n\n| \u65b9\u6cd5 | \u63cf\u8ff0 | \u53c2\u6570 | \u8fd4\u56de\u503c |\n|------|------|------|--------|\n| `get_system_settings` | \u83b7\u53d6\u7cfb\u7edf\u8bbe\u7f6e | - | `SystemSettings` |\n| `get_version` | \u83b7\u53d6\u7248\u672c\u4fe1\u606f | - | `VersionInfo` |\n\n## \u4e3b\u8981\u6570\u636e\u7c7b\u578b\n\n### \u57fa\u7840\u7c7b\u578b\n- `Response[T]` - \u57fa\u7840\u54cd\u5e94\u7ed3\u6784\n- `ResponsePaginate[T]` - \u5206\u9875\u54cd\u5e94\u7ed3\u6784\n\n### \u7528\u6237\u76f8\u5173\n- `UserInfo` - \u7528\u6237\u4fe1\u606f\n- `UserBasic` - \u7528\u6237\u57fa\u7840\u4fe1\u606f\n- `Department` - \u90e8\u95e8\u4fe1\u606f\n\n### \u6d88\u606f\u76f8\u5173\n- `SendMessageRequest` - \u53d1\u9001\u6d88\u606f\u8bf7\u6c42\n- `DialogMessage` - \u5bf9\u8bdd\u6d88\u606f\n- `DialogMessageListResponse` - \u6d88\u606f\u5217\u8868\u54cd\u5e94\n- `TodoListResponse` - \u5f85\u529e\u5217\u8868\u54cd\u5e94\n\n### \u5bf9\u8bdd\u76f8\u5173\n- `DialogInfo` - \u5bf9\u8bdd\u4fe1\u606f\n- `DialogMember` - \u5bf9\u8bdd\u6210\u5458\n\n### \u9879\u76ee\u548c\u4efb\u52a1\u76f8\u5173\n- `Project` - \u9879\u76ee\u4fe1\u606f\n- `ProjectColumn` - \u9879\u76ee\u5217\u8868\n- `ProjectTask` - \u9879\u76ee\u4efb\u52a1\n- `TaskFile` - \u4efb\u52a1\u6587\u4ef6\n- `TaskContent` - \u4efb\u52a1\u5185\u5bb9\n\n### \u7cfb\u7edf\u76f8\u5173\n- `SystemSettings` - \u7cfb\u7edf\u8bbe\u7f6e\n- `VersionInfo` - \u7248\u672c\u4fe1\u606f\n\n## \u5f02\u5e38\u5904\u7406\n\n```python\nfrom dootask import (\n    DooTaskException,\n    DooTaskAPIException,\n    DooTaskHTTPException,\n    DooTaskAuthException,\n    DooTaskPermissionException\n)\n\ntry:\n    user = client.get_user_info()\nexcept DooTaskAuthException:\n    print(\"\u8ba4\u8bc1\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5 token\")\nexcept DooTaskPermissionException:\n    print(\"\u6743\u9650\u4e0d\u8db3\")\nexcept DooTaskAPIException as e:\n    print(f\"API \u9519\u8bef: {e}\")\nexcept DooTaskHTTPException as e:\n    print(f\"\u7f51\u7edc\u9519\u8bef: {e}\")\nexcept DooTaskException as e:\n    print(f\"\u5176\u4ed6\u9519\u8bef: {e}\")\n```\n\n## \u7f13\u5b58\u673a\u5236\n\n\u5ba2\u6237\u7aef\u5185\u7f6e\u7528\u6237\u4fe1\u606f\u7f13\u5b58\u673a\u5236\uff0c\u9ed8\u8ba4\u7f13\u5b58\u65f6\u95f4\u4e3a10\u5206\u949f\uff1a\n\n```python\n# \u5f3a\u5236\u5237\u65b0\u7f13\u5b58\nuser = client.get_user_info(no_cache=True)\n\n# \u4f7f\u7528\u7f13\u5b58\uff08\u9ed8\u8ba4\uff09\nuser = client.get_user_info()\n```\n\n## \u8bb8\u53ef\u8bc1\n\nMIT License \n",
    "bugtrack_url": null,
    "license": null,
    "summary": "DooTask Tools \u5ba2\u6237\u7aef\u5e93",
    "version": "0.0.7",
    "project_urls": {
        "Bug Reports": "https://github.com/dootask/dootask-tools/issues",
        "Documentation": "https://github.com/dootask/dootask-tools#readme",
        "Homepage": "https://github.com/dootask/dootask-tools",
        "Source": "https://github.com/dootask/dootask-tools"
    },
    "split_keywords": [
        "dootask",
        "api",
        "client",
        "chat",
        "project",
        "management",
        "collaboration"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "574f597f770bb4ab0021507eff4ef5485dc1bad63ef090297a0bf6341e47a08b",
                "md5": "bb034b72f5cb90c29d58af7884b23184",
                "sha256": "7d194bb3bf58348ad6270d6e01d49255c24ca6dbdac56180d020c16d38254934"
            },
            "downloads": -1,
            "filename": "dootask_tools-0.0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bb034b72f5cb90c29d58af7884b23184",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 13904,
            "upload_time": "2025-07-24T23:54:33",
            "upload_time_iso_8601": "2025-07-24T23:54:33.180113Z",
            "url": "https://files.pythonhosted.org/packages/57/4f/597f770bb4ab0021507eff4ef5485dc1bad63ef090297a0bf6341e47a08b/dootask_tools-0.0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3ea348de7601d1ac852f830390ffc039b2acc2cd5ff10ac867e69c33c1f07e57",
                "md5": "2fec2ccd6337b596548a355084a02f52",
                "sha256": "29014e5bf948f6fdeca5a13bd1531baaf1dc3eb338af9b9d7d09930801a3ff81"
            },
            "downloads": -1,
            "filename": "dootask_tools-0.0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "2fec2ccd6337b596548a355084a02f52",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 16031,
            "upload_time": "2025-07-24T23:54:34",
            "upload_time_iso_8601": "2025-07-24T23:54:34.475856Z",
            "url": "https://files.pythonhosted.org/packages/3e/a3/48de7601d1ac852f830390ffc039b2acc2cd5ff10ac867e69c33c1f07e57/dootask_tools-0.0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-24 23:54:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dootask",
    "github_project": "dootask-tools",
    "github_not_found": true,
    "lcname": "dootask-tools"
}
        
Elapsed time: 0.90515s