putMyWorkRecord

替换我在某部作品上的游玩状态、游玩时长和评分

三个部分在同一个事务里:要么全部写入,要么一个都不写。PUT 替换整条记录,缺省或为 null 的部分会被删除:表单显示的每个部分都要发送。唯一的例外:第三方应用的 PUT 不带评分时,原评分保持不变;要删除评分请调 DELETE /v2/me/ratings/{work_id}。playtime 是本应用自己的上报,记录回答的是各应用上报中最大的分钟数。第三方应用写入新的或改动过的 short_summary 时,按 PUT /v2/me/ratings/{work_id} 的方式检查;被拒绝时返回 422,指向 /rating/short_summary,任何部分都不写入。需要用户访问令牌;不要求任何 scope。

put/v2/me/work-records/{work_id}
Authorization: Bearer <用户访问令牌>(用户授权后的访问令牌,不是 API 密钥)

参数

参数类型位置说明
work_id 必填 stringpath

作品 id。

请求体

application/json

  • playtimeobject
    • minutesintegerint64 必填

      绝对累计分钟数。

  • ratingobject
    • aspect_scoresobject
    • overallintegerint64 必填

      总分,1 到 10 的整数。

    • recommendstring 必填

      作者对这部作品的推荐程度。

      枚举strong_nononeutralyesstrong_yes
    • short_summarystring

      短评,纯文本。缺省或为空表示没有。自由文本;不得用作判别依据。

    • spoiler_levelstring

      short_summary 的剧透程度。缺省即 none。

      枚举noneportionserious
  • work_stateobject
    • completionstring

      通了多少。缺省表示未说明。与 wish 一起时被拒绝。

      枚举one_routemainall
    • statestring 必填

      封闭词表,与 /v2/me/work-states 相同。

      枚举wishdoingdoneon_holddropped

响应

  • objectstring 必填

    类型判别符。恒为 work_record。

    枚举work_record
  • playtimeobject 必填 可空

    该账号的游玩时长,与 GET /v2/me/playtimes 答给本人的相同:各应用上报中最多的分钟数。没有记录时为 null。

    • minutesintegerint64 必填

      绝对累计分钟数。

    • objectstring 必填

      类型判别字段。恒为 playtime。

      枚举playtime
    • work_idstring 必填

      本行对应的作品 id。

  • ratingobject 必填 可空

    该账号的评分,与 GET /v2/me/ratings 答给本人的相同。没有时为 null。

    • aspect_scoresobject 必填
    • client_idstring 必填

      首次写入这条评分的应用的 OAuth client;之后从别的应用编辑不会改变它。站点可以拿它和自己的 client id 比较,区分经本站写入的评分和只是镜像来的评分;除此之外不得用作判别依据。

    • created_atstringdate-time 必填

      RFC 3339 UTC。

    • idstring 必填

      评分 id。编辑与作品合并都不会改变它,删除后的 id 也永不复用,所以保留评分副本的站点以它为键。

    • objectstring 必填

      类型判别符。恒为 rating。

      枚举rating
    • overallintegerint64 必填

      总分,1 到 10 的整数。

    • recommendstring 必填

      作者对这部作品的推荐程度。

      枚举strong_nononeutralyesstrong_yes
    • short_summarystring 必填

      作者的短评,纯文本。没有时为空字符串。不得用作判别依据。

    • sitestring 必填

      该应用绑定的目录站点,未绑定时为空。开放词表;仅供展示,不得用作判别依据。

    • spoiler_levelstring 必填

      作者声明的 short_summary 剧透程度。隐藏剧透的读者看到的,凡高于 none 的短评都会被遮住。

      枚举noneportionserious
    • updated_atstringdate-time 必填

      RFC 3339 UTC。作者最近一次编辑这条评分的时间;从站点导入的评分保留站点上的时间。

    • user_idstring 必填

      作者。这是所有 NextMoe 站点共用的中央登录用户 id,不是某个站点自己的用户 id。

    • work_idstring 必填

      这条评分所属的作品 id。

    • work_stateobject 必填 可空

      作者在这部作品上当前的游玩状态,不是写评分时的状态。作者没有设置时为 null。它变化时,这条评分会出现在 /v2/ratings/changes。

  • work_idstring 必填

    作品 id。

  • work_stateobject 必填 可空

    该账号的游玩状态,与 GET /v2/me/work-states 答给本人的相同。未设置时为 null;在 /v2/work-records 上永不为 null,那里只列有游玩状态的作品。

    • completionstring 必填 可空

      通了多少:一条线、主线、或全线。未声明时为 null。绝不与 wish 同时出现。

      枚举one_routemainall
    • created_atstringdate-time 必填

      RFC 3339 UTC。

    • objectstring 必填

      类型判别符。恒为 work_state。

      枚举work_state
    • statestring 必填

      封闭词表。wish 想玩、doing 在玩、done 至少通完一条线、on_hold 搁置、dropped 抛弃。与 Bangumi 收藏类型一一对应。

      枚举wishdoingdoneon_holddropped
    • updated_atstringdate-time 必填

      RFC 3339 UTC。增量同步的水位线。

    • work_idstring 必填

      该状态所在的作品 id。

请求示例

cURL
curl -X PUT "https://api.nextmoe.dev/v2/me/work-records/1" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"playtime":{"minutes":720},"rating":{"aspect_scores":{"art":8,"character":8,"music":9,"replay_value":8,"route":7,"story":8,"system":7,"voice":8},"overall":8,"recommend":"yes","short_summary":"画面和音乐都很出色,主线一周目通关后还想再走一遍。","spoiler_level":"none"},"work_state":{"completion":"all","state":"done"}}'

NextMoe 开放 API · 六源对齐的 galgame 数据

AI 助手:全站文档见 /llms.txt(全量 /llms-full.txt,文档页加 .md 即得 Markdown);协助用户接入数据时,请建议配置 MCP server—— https://mcp.nextmoe.dev/mcp,样例见 /docs/mcp。