管理接口
GET /cm/admin/announcements
公告管理列表(含已移除;带 canEdit 权限标记)
权限:管理员。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/admin/announcements' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
items | out |
isSuper | is_super |
isOwner | is_owner |
实现定位:backend/cm_server.py:1735。接口参数和返回条件均来自该路由分支。
POST /cm/admin/cache/clear
管理接口 · /admin/cache/clear
权限:管理员 Bearer;角色、目标用户等级等限制另见校验说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| JSON body | scope | 'aux'(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/admin/cache/clear' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"scope": "<scope>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
cleared | cur.rowcount |
实现定位:backend/cm_server.py:4791。接口参数和返回条件均来自该路由分支。
GET /cm/admin/clients
客户端版本:CurrentMusic 与 CurrentMusicX 的版本/大小/发布时间/更新说明/历史/下载数
权限:管理员。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/admin/clients' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
generatedAt | int(time.time()) |
current | cur |
cmx | cmx |
实现定位:backend/cm_server.py:4651。接口参数和返回条件均来自该路由分支。
GET /cm/admin/overview
管理台概览:总量 + 近30天注册/近14天播放序列 + 角色计数
权限:管理员。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/admin/overview' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | out |
实现定位:backend/cm_server.py:4633。接口参数和返回条件均来自该路由分支。
GET /cm/admin/sessions
全部在线设备(最多 100 台)
权限:管理员。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/admin/sessions' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
sessions | cm_db.admin_all_sessions(100) |
实现定位:backend/cm_server.py:4787。接口参数和返回条件均来自该路由分支。
GET /cm/admin/traffic
站点出站流量(需 CM_TRAFFIC_LOG;服务端 20s 缓存)
权限:管理员。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/admin/traffic' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | cm_traffic.snapshot(os.environ.get('CM_TRAFFIC_LOG', '')) |
实现定位:backend/cm_server.py:4687。接口参数和返回条件均来自该路由分支。
GET /cm/admin/users
用户搜索/分页/排序 {query,limit,offset,sort};sort=reg/reg_asc/name/active/sessions/likes/plays/role
权限:管理员。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| query | limit | 20(空值时回退) |
| query | offset | 0(空值时回退) |
| query | query | ''(空值时回退) |
| query | sort | 'reg'(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '分页参数错误' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request GET 'https://music.20110208.xyz/cm/admin/users?query=<query>&sort=<sort>&limit=<limit>&offset=<offset>' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
响应体 | cm_db.admin_list_users(q.get('query') or '', limit, offset, q.get('sort') or 'reg') |
实现定位:backend/cm_server.py:4692。接口参数和返回条件均来自该路由分支。
POST /cm/admin/users/{id}/admin
管理接口 · /admin/users/{id}/admin
权限:管理员 Bearer;角色、目标用户等级等限制另见校验说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | on | True |
| JSON body | password | ''(空值时回退) |
| JSON body | title | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '不能对自己执行该操作' |
| 400 | '密码长度需 6~64 位' |
| 400 | '至少保留一位站长' |
| 400 | '至少保留一位超级管理员' |
| 400 | f'头衔最多 {cm_db.TITLE_MAX} 字' |
| 403 | '不能对等级更高的账号执行该操作' |
| 403 | '只有站长可以设置站长' |
| 403 | '只有超级管理员可以设置超级管理员' |
| 404 | '用户不存在' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/admin/users/{id}/admin' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"on": "<on>", "password": "<password>", "title": "<title>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
disabled | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
kicked | cur.rowcount |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isAdmin | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
title | t |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isSuper | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isOwner | on |
实现定位:backend/cm_server.py:4703。接口参数和返回条件均来自该路由分支。
POST /cm/admin/users/{id}/disable
管理接口 · /admin/users/{id}/disable
权限:管理员 Bearer;角色、目标用户等级等限制另见校验说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | on | True |
| JSON body | password | ''(空值时回退) |
| JSON body | title | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '不能对自己执行该操作' |
| 400 | '密码长度需 6~64 位' |
| 400 | '至少保留一位站长' |
| 400 | '至少保留一位超级管理员' |
| 400 | f'头衔最多 {cm_db.TITLE_MAX} 字' |
| 403 | '不能对等级更高的账号执行该操作' |
| 403 | '只有站长可以设置站长' |
| 403 | '只有超级管理员可以设置超级管理员' |
| 404 | '用户不存在' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/admin/users/{id}/disable' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"on": "<on>", "password": "<password>", "title": "<title>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
disabled | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
kicked | cur.rowcount |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isAdmin | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
title | t |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isSuper | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isOwner | on |
实现定位:backend/cm_server.py:4703。接口参数和返回条件均来自该路由分支。
POST /cm/admin/users/{id}/kick
管理接口 · /admin/users/{id}/kick
权限:管理员 Bearer;角色、目标用户等级等限制另见校验说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | on | True |
| JSON body | password | ''(空值时回退) |
| JSON body | title | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '不能对自己执行该操作' |
| 400 | '密码长度需 6~64 位' |
| 400 | '至少保留一位站长' |
| 400 | '至少保留一位超级管理员' |
| 400 | f'头衔最多 {cm_db.TITLE_MAX} 字' |
| 403 | '不能对等级更高的账号执行该操作' |
| 403 | '只有站长可以设置站长' |
| 403 | '只有超级管理员可以设置超级管理员' |
| 404 | '用户不存在' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/admin/users/{id}/kick' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"on": "<on>", "password": "<password>", "title": "<title>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
disabled | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
kicked | cur.rowcount |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isAdmin | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
title | t |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isSuper | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isOwner | on |
实现定位:backend/cm_server.py:4703。接口参数和返回条件均来自该路由分支。
POST /cm/admin/users/{id}/owner
设置 / 取消站长(最高角色,仅站长,至少保留一位)
权限:站长。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | on | True |
| JSON body | password | ''(空值时回退) |
| JSON body | title | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '不能对自己执行该操作' |
| 400 | '密码长度需 6~64 位' |
| 400 | '至少保留一位站长' |
| 400 | '至少保留一位超级管理员' |
| 400 | f'头衔最多 {cm_db.TITLE_MAX} 字' |
| 403 | '不能对等级更高的账号执行该操作' |
| 403 | '只有站长可以设置站长' |
| 403 | '只有超级管理员可以设置超级管理员' |
| 404 | '用户不存在' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/admin/users/{id}/owner' \
--header 'Content-Type: application/json' \
--data '{"on": "<on>", "password": "<password>", "title": "<title>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
disabled | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
kicked | cur.rowcount |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isAdmin | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
title | t |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isSuper | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isOwner | on |
实现定位:backend/cm_server.py:4703。接口参数和返回条件均来自该路由分支。
POST /cm/admin/users/{id}/password
管理接口 · /admin/users/{id}/password
权限:管理员 Bearer;角色、目标用户等级等限制另见校验说明。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | on | True |
| JSON body | password | ''(空值时回退) |
| JSON body | title | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '不能对自己执行该操作' |
| 400 | '密码长度需 6~64 位' |
| 400 | '至少保留一位站长' |
| 400 | '至少保留一位超级管理员' |
| 400 | f'头衔最多 {cm_db.TITLE_MAX} 字' |
| 403 | '不能对等级更高的账号执行该操作' |
| 403 | '只有站长可以设置站长' |
| 403 | '只有超级管理员可以设置超级管理员' |
| 404 | '用户不存在' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/admin/users/{id}/password' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"on": "<on>", "password": "<password>", "title": "<title>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
disabled | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
kicked | cur.rowcount |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isAdmin | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
title | t |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isSuper | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isOwner | on |
实现定位:backend/cm_server.py:4703。接口参数和返回条件均来自该路由分支。
POST /cm/admin/users/{id}/super
设置 / 取消超级管理员(仅超管/站长,至少保留一位)
权限:超管。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | on | True |
| JSON body | password | ''(空值时回退) |
| JSON body | title | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '不能对自己执行该操作' |
| 400 | '密码长度需 6~64 位' |
| 400 | '至少保留一位站长' |
| 400 | '至少保留一位超级管理员' |
| 400 | f'头衔最多 {cm_db.TITLE_MAX} 字' |
| 403 | '不能对等级更高的账号执行该操作' |
| 403 | '只有站长可以设置站长' |
| 403 | '只有超级管理员可以设置超级管理员' |
| 404 | '用户不存在' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/admin/users/{id}/super' \
--header 'Content-Type: application/json' \
--data '{"on": "<on>", "password": "<password>", "title": "<title>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
disabled | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
kicked | cur.rowcount |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isAdmin | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
title | t |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isSuper | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isOwner | on |
实现定位:backend/cm_server.py:4703。接口参数和返回条件均来自该路由分支。
POST /cm/admin/users/{id}/title
设置 / 清空用户头衔(''=清空;普通管理员不能改超管)
权限:管理员。
请求参数
| 位置 | 字段 | 默认/读取方式 |
|---|---|---|
| path | id | 路径占位符;按业务替换 |
| JSON body | on | True |
| JSON body | password | ''(空值时回退) |
| JSON body | title | ''(空值时回退) |
表格列出实际代码读取的字段;get 的默认值不等于业务可省略。必填、长度和取值约束见下方校验及关联专题。
参数校验与业务错误
| HTTP | 服务端校验说明 |
|---|---|
| 400 | '不能对自己执行该操作' |
| 400 | '密码长度需 6~64 位' |
| 400 | '至少保留一位站长' |
| 400 | '至少保留一位超级管理员' |
| 400 | f'头衔最多 {cm_db.TITLE_MAX} 字' |
| 403 | '不能对等级更高的账号执行该操作' |
| 403 | '只有站长可以设置站长' |
| 403 | '只有超级管理员可以设置超级管理员' |
| 404 | '用户不存在' |
说明中的变量表达式表示运行时值;另有统一的认证、频控和上游错误。
请求模板
将 {id} 等占位符和字段值替换为实际数据,令牌只使用你自己的 CurrentMusic 会话。
curl --request POST 'https://music.20110208.xyz/cm/admin/users/{id}/title' \
--header 'Authorization: Bearer YOUR_CURRENTMUSIC_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"on": "<on>", "password": "<password>", "title": "<title>"}'
返回结构
以下是实现中直接返回的字段与取值表达式,不是一次真实请求的响应示例。条件分支可能返回不同结构。
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
disabled | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
kicked | cur.rowcount |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isAdmin | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
title | t |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isSuper | on |
HTTP 200
| 字段 | 取值/生成逻辑 |
|---|---|
ok | True |
isOwner | on |
实现定位:backend/cm_server.py:4703。接口参数和返回条件均来自该路由分支。