putMyWorkRecord
替换我在某部作品上的游玩状态、游玩时长和评分
三个部分在同一个事务里:要么全部写入,要么一个都不写。PUT 替换整条记录,缺省或为 null 的部分会被删除:表单显示的每个部分都要发送。唯一的例外:第三方应用的 PUT 不带评分时,原评分保持不变;要删除评分请调 DELETE /v2/me/ratings/{work_id}。playtime 是本应用自己的上报,记录回答的是各应用上报中最大的分钟数。第三方应用写入新的或改动过的 short_summary 时,按 PUT /v2/me/ratings/{work_id} 的方式检查;被拒绝时返回 422,指向 /rating/short_summary,任何部分都不写入。需要用户访问令牌;不要求任何 scope。
/v2/me/work-records/{work_id}Authorization: Bearer <用户访问令牌>(用户授权后的访问令牌,不是 API 密钥)参数
| 参数 | 类型 | 位置 | 说明 |
|---|---|---|---|
work_id 必填 | string | path | 作品 id。 |
请求体
application/json
playtimeobjectminutesintegerint64 必填绝对累计分钟数。
ratingobjectaspect_scoresobjectoverallintegerint64 必填总分,1 到 10 的整数。
recommendstring必填作者对这部作品的推荐程度。
枚举strong_nononeutralyesstrong_yesshort_summarystring短评,纯文本。缺省或为空表示没有。自由文本;不得用作判别依据。
spoiler_levelstringshort_summary 的剧透程度。缺省即 none。
枚举noneportionserious
work_stateobjectcompletionstring通了多少。缺省表示未说明。与 wish 一起时被拒绝。
枚举one_routemainallstatestring必填封闭词表,与 /v2/me/work-states 相同。
枚举wishdoingdoneon_holddropped
响应
objectstring必填类型判别符。恒为 work_record。
枚举work_recordplaytimeobject必填 可空该账号的游玩时长,与 GET /v2/me/playtimes 答给本人的相同:各应用上报中最多的分钟数。没有记录时为 null。
minutesintegerint64 必填绝对累计分钟数。
objectstring必填类型判别字段。恒为 playtime。
枚举playtimework_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。
枚举ratingoverallintegerint64 必填总分,1 到 10 的整数。
recommendstring必填作者对这部作品的推荐程度。
枚举strong_nononeutralyesstrong_yesshort_summarystring必填作者的短评,纯文本。没有时为空字符串。不得用作判别依据。
sitestring必填该应用绑定的目录站点,未绑定时为空。开放词表;仅供展示,不得用作判别依据。
spoiler_levelstring必填作者声明的 short_summary 剧透程度。隐藏剧透的读者看到的,凡高于 none 的短评都会被遮住。
枚举noneportionseriousupdated_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_routemainallcreated_atstringdate-time 必填RFC 3339 UTC。
objectstring必填类型判别符。恒为 work_state。
枚举work_statestatestring必填封闭词表。wish 想玩、doing 在玩、done 至少通完一条线、on_hold 搁置、dropped 抛弃。与 Bangumi 收藏类型一一对应。
枚举wishdoingdoneon_holddroppedupdated_atstringdate-time 必填RFC 3339 UTC。增量同步的水位线。
work_idstring必填该状态所在的作品 id。
请求示例
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"}}'