Metadata-Version: 2.4
Name: atclib-cli
Version: 0.1.0
Summary: OAuth command-line client for the KiSpace content library
Requires-Python: >=3.13
Requires-Dist: av>=18.0.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: keyring>=25.6.0
Requires-Dist: pillow>=12.0.0
Requires-Dist: platformdirs>=4.3.0
Requires-Dist: typer>=0.24.2
Provides-Extra: dev
Requires-Dist: pytest>=9.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# ATCLib CLI

`atclib` 是琦琦内容生产库的 OAuth 命令行客户端。它使用 OAuth 2.0 Device Authorization 登录，可查询、创建、上传并发布素材和后处理内容。

## 安装与登录

```bash
uv tool install .
atclib login --client-id oc_example
atclib whoami
```

默认服务为 `https://atclib.kispace.cn`。可用 `ATCLIB_SERVER_URL` 或任意命令的 `--server` 临时覆盖。

管理员须在平台创建公开 OAuth Client：名称 `atclib-cli`、Token 端点认证选择“公开客户端”、开启 PKCE，并允许以下 scopes：

`profile:read materials:read materials:write post_process_contents:read post_process_contents:write`

平台要求注册 redirect URI；Device Flow 不会使用它，可登记 `http://127.0.0.1:8765/oauth/callback`。将平台生成的 `client_id` 提供给 CLI 用户。

刷新令牌保存在系统密钥链；本地配置只保存服务地址和 client ID。`atclib logout` 会撤销并删除本地令牌。

## 常用命令

```bash
atclib material list --q "选题"
atclib material category-list
atclib material create "产品访谈" --category cat_123 --content-file ./interview.md --publish
atclib material create "原始图片" --kind image --category cat_123 --file ./cover.png
atclib material upload material_123 ./appendix.pdf
atclib material publish material_123

atclib content create "访谈摘要" --method "人工摘要" --material material_123 --category cat_123 \
  --content-file ./summary.md --publish
atclib content list --q "摘要"
```

附件支持单文件与 multipart 直传；上传中断后可用 `material upload-resume` 或 `content upload-resume` 加上资源 ID、会话 ID 和相同文件路径继续。所有命令都支持全局 `--json`，便于脚本处理。
