跳转到内容

Tankoubon API

13 endpoints.

GEThttp://localhost:3000/api/tankoubons

分页获取 Tankoubon 列表。

查询参数

pageinteger可选
Tankoubon 列表的页码。 每页数量取决于服务端的 archives_per_page 设置。

响应

200Tankoubon 列表
{
  "filtered": 0,
  "result": [
    {
      "archives": [
        "e69e43e1355267f7d32a4f9b7f2fe108d2401ebf",
        "e69e43e1355267f7d32a4f9b7f2fe108d2401eba"
      ],
      "id": "TANK_1749925516",
      "name": "sailor moon",
      "progress": 0,
      "summary": "",
      "tags": ""
    }
  ],
  "total": 0
}

填写你自己的实例地址,请求由浏览器直接发往该地址。

PUThttp://localhost:3000/api/tankoubons

创建一个新 Tankoubon,或更新已有 Tankoubon 的名称。

请求体

application/x-www-form-urlencoded, multipart/form-data

响应

200成功响应
{
  "operation": "create_tankoubon",
  "success": 0,
  "tankoubon_id": ""
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

DELETEhttp://localhost:3000/api/tankoubons/{id}

从服务端移除一个 Tankoubon。这不会删除它底下的档案。

响应

200成功响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
423该 Tankoubon 当前被锁定,无法修改
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

GEThttp://localhost:3000/api/tankoubons/{id}

获取指定 tankoubon ID 的详情。

响应

200Tankoubon
{
  "archives": [
    ""
  ],
  "id": "",
  "name": "",
  "progress": 0,
  "summary": "",
  "tags": ""
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

填写你自己的实例地址,请求由浏览器直接发往该地址。

PUThttp://localhost:3000/api/tankoubons/{id}

修改 Tankoubon 的完整元数据(名称、摘要、附加标签)或它的内容。
如果你只需要改名称,考虑直接用 PUT /api/tankoubons。

注意:如果不需要更新 data 里某个键对应的内容,就不要发送那个键——否则可能产生非预期的结果。

路径参数

idstring · min: 15 · max: 15 · pattern必填
要更新的 Tankoubon ID。

请求体

application/json

响应

200成功响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
423该 Tankoubon 当前被锁定,无法修改
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

DELETEhttp://localhost:3000/api/tankoubons/{id}/{archive}

把某个档案移出一个 Tankoubon。

路径参数

idstring · min: 15 · max: 15 · pattern必填
要更新的 Tankoubon ID。
archivestring · min: 40 · max: 40 · pattern必填
要移除的档案 ID。

响应

200结果
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
423该 Tankoubon 当前被锁定,无法修改
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

PUThttp://localhost:3000/api/tankoubons/{id}/{archive}

把一个档案追加到 Tankoubon 的最后一位。

路径参数

idstring · min: 15 · max: 15 · pattern必填
要更新的 Tankoubon ID。
archivestring · min: 40 · max: 40 · pattern必填
要追加的档案 ID。

响应

200成功响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}
423该 Tankoubon 当前被锁定,无法修改
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/tankoubons/{id}/ai/rename-chapter

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

对应的 handler 是 ai_rename_chapter,位于 crates/lanrurugi-api/src/tankoubons.rs:1693。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/tankoubons.rs:107 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/tankoubons/{id}/ai/rename-suggestions

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/tankoubons.rs:1585)的译文;原文以源码为准。

把 tankoubon 的标题、成员档案名与顺序发给 DeepSeek,返回 AI 生成的改名建议(tankoubon 名称 + 每个档案的章节名)。必须配置 LLM 密钥;未配置时返回 400。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/tankoubons.rs:103 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

GEThttp://localhost:3000/api/tankoubons/{id}/full

获取指定 tankoubon ID 的详情,附带分页的档案元数据。 每页的档案数取决于服务端的 archives_per_page 设置。

查询参数

pageinteger · default: -1可选
档案列表的页码。默认 -1,返回全部档案。

响应

200Tankoubon
{
  "filtered": 0,
  "result": {
    "archives": [
      ""
    ],
    "full_data": [
      null
    ],
    "id": "",
    "name": "",
    "progress": 0,
    "summary": "",
    "tags": ""
  },
  "total": 0
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

填写你自己的实例地址,请求由浏览器直接发往该地址。

PUThttp://localhost:3000/api/tankoubons/{id}/progress/{page}

告诉服务端你当前正在阅读这个 Tankoubon 的第几页,以便它相应地更新内部的阅读进度。 页码是在该 tank 内所有档案上全局计数的(如果一个 tank 有两个档案,分别有 20 页和 25 页,那么第 26 页就是第 2 个档案的第 6 页)。 ⚠ 如果服务端配置为使用客户端进度跟踪,这个 API 调用会返回错误! 调用前请务必先用 /api/info 确认服务端是否跟踪阅读进度。

路径参数

idstring · min: 15 · max: 15 · pattern必填
要更新的 Tankoubon ID。
pageinteger · min: 1必填
要更新到的全局页码,从 1 开始计数。必须是正整数。

响应

200成功响应
{
  "id": "TANK_1589141306",
  "lastreadtime": 123943543,
  "operation": "update_tank_progress",
  "page": 5,
  "success": 1
}
400通用错误响应
{
  "error": "Server-side Progress Tracking is disabled on this instance.",
  "operation": "update_tank_progress",
  "success": 0
}
401开启 authprogress 时需要认证
{
  "error": "This operation requires authentication.",
  "operation": "update_tank_progress",
  "success": 0
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

GEThttp://localhost:3000/api/tankoubons/{id}/thumbnail

获取指定 Tankoubon 的封面缩略图。 默认情况下,缩略图取自第一个档案的第一页。 如果缩略图尚不存在,这个端点会返回一张占位图。 若想把缩略图生成排入后台, 可以使用 no_fallback 查询参数。

查询参数

no_fallbackstring · enum: true | false可选
关闭占位图,把缩略图排入提取队列,并返回 code 202 的 JSON。图片已存在时该参数不起作用。(无论哪种情况,只要图片已存在就会以 code 200 返回它)

响应

200如果缩略图已经提取过,会直接返回它。

该响应没有示例数据。

202缩略图已排入提取队列。用 `/api/minion/:jobid` 跟踪它何时就绪。
{
  "job": 0,
  "operation": "",
  "success": 1
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

填写你自己的实例地址,请求由浏览器直接发往该地址。

PUThttp://localhost:3000/api/tankoubons/{id}/thumbnail

用跨该 tank 内所有档案(按顺序)的全局页码,设置指定 Tankoubon 的封面缩略图。全局页码会自动换算到正确的档案与其中的局部页码。

查询参数

pageinteger · min: 1必填
跨整个 Tankoubon 内所有档案的全局页码,从 1 开始计数。第 1 页就是第一个档案的第一页,依此类推。

响应

200Tankoubon 缩略图已更新
{
  "new_thumbnail": "",
  "operation": "update_tankoubon_thumbnail",
  "success": 0
}
400错误响应
{
  "error": "",
  "operation": "",
  "success": 0,
  "successMessage": ""
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。