Skip to content

TuringTalk 接口完整文档 ​

服务地址:https://game.xfcode.top(WebSocket 对应 wss://game.xfcode.top/...) 消息格式:WebSocket 均为 JSON;HTTP 按 REST 风格。 更新日期:2026-10-06


一、WebSocket 接口 ​

1.1 连接地址 ​

服务端在 onOpen 时按连接的路径把连接分派给对应模式的 Handler;在 onMessage 时按消息 type 的前缀匹配路由(空前缀为兜底)。

模式WS 路径消息前缀说明
经典 1v1(图灵测试)/ws空(兜底)匹配、聊天、判定
公共聊天室/ws/lobbylobby_聊天、表情、图片、点歌、投票、管理
五子棋/ws/board/gomokuboard_gomoku_对弈
围棋/ws/board/goboard_go_对弈
海龟汤(真人房)/ws/soupsoup_多人推理房
缘分(默契测试)/ws/fatefate.双人默契答题
方块世界(2D 沙盒)/ws/blockworldbw_多人建造
临时聊天/ws/tempchattemp_1v1 私密房
BOT 网关/bot—(独立分派)开放给第三方 BOT 客户端
管理后台/{Admin.Path}/ws(默认 /admin/ws)admin_管理员专属

说明:

  • 海龟汤、缘分受配置开关控制(Soup.Enabled / Fate.Enabled,默认 true);关闭时对应 WS 路径不会注册。
  • 方块世界当前暂停开放:BlockWorld.Enabled 配置为 false,此时 /ws/blockworld 通道不注册、GET /blockworld 返回 503 维护页、首页入口隐藏;世界数据保留,把配置改回 true 即可恢复。
  • 管理后台路径由 Admin.Path 配置(默认 admin),其 WS 地址为 /{Admin.Path}/ws。
  • 未匹配到路径的连接会兜底路由到 /ws。连接过载时服务端会下发 {"type":"error","message":"服务器繁忙,请稍后再试"} 并立即关闭。

通用消息格式(发送/接收均为 JSON):

json
{ "type": "消息类型", ...参数 }

心跳:除 BOT 网关(bot_ping/bot_pong)与临时聊天(temp_ping/temp_pong)外,其余模式统一使用 ping(C→S)与 pong(S→C)。


1.2 经典 1v1(/ws,空前缀) ​

type方向参数说明
joinC→Snickname, duration(300/600), fingerprint, reconnect_session_id?加入匹配队列 / 重连恢复会话
leaveC→S—主动离开对局
messageC→Stext发送聊天消息(对手侧转发 sender 为「对方」)
stickerC→Sid发送表情(仅传表情 ID)
judgeC→Sguess(ai/human), tag?做出判定
reportC→Sreason举报对手
save_historyC→Ssession_id, ...保存对局记录
leave_messageC→Stext给对方留言
update_nicknameC→Snickname, fp, player_token?修改昵称
change_passwordC→Sold_password, new_password修改密码
set_passwordC→Snew_password, player_token?设置密码
share_recordC→S—分享战绩到聊天室
get_stickersC→S—获取可用表情列表
pingC→S—心跳
admin_ban / admin_verifyC→S(admin)—管理员操作
matchedS→Copponent_name, duration, session_id, player_id, token匹配成功 / 重连恢复
messageS→Ctext, sender, side对手消息(旁观者含 side)
systemS→Ctext系统提示
judge_notifyS→Cjudger_name, timeout对方已判定
judgedS→C...判定结果
timeoutS→Creason, opponent_truth, session_id, opponent_name超时/异常结束
stickerS→Cid, name对手表情(不含 URL)
spectate_messageS→Ctext, sender, side旁观者聊天流
spectate_stickerS→Cid, name旁观者表情流
spectate_systemS→Ctext旁观者系统提示
spectate_endedS→C...旁观结束
report_resultS→Csuccess, message举报结果
save_history_statusS→Cok, message保存记录结果
leave_message_statusS→Cok, message留言结果
update_nickname_resultS→Csuccess, nickname, error改昵称结果
change_password_resultS→Csuccess, message改密码结果
set_password_resultS→Csuccess, message设密码结果
share_record_statusS→Cok, message分享结果
recordS→C...战绩数据
bannedS→Creason已被封禁
admin_configS→C...管理员配置下发
pongS→C—心跳响应
online_countS→Ccount在线人数(按 IP 去重)

1.3 公共聊天室(/ws/lobby,前缀 lobby_) ​

客户端 → 服务端

type参数说明
lobby_joinnickname, password?, player_token?, bot_player_id?加入聊天室(BOT 网关直绑身份时用 bot_player_id)
lobby_chatcontent, reply_to_id?, reply_to_name?, reply_to_text?发送消息(含特殊语法时解析为结构化 blocks)
lobby_stickerid发送表情
lobby_imagekey(32位一次性凭据), client_id?发送图片(先用一次性 key 换出图床 URL)
lobby_revokemessage_id撤回本人消息(限 3 分钟内)
lobby_reportmessage_id, reason?举报消息
lobby_nudgetarget_fd, target_nickname拍一拍
lobby_card_share—分享战绩卡片
lobby_set_fpfingerprint上报浏览器指纹
lobby_song_searchkeyword搜索歌曲(传入分享链接/纯 ID 时直接点歌)
lobby_song_requestsong_id, nickname点歌
lobby_song_votesong_id投票晋升
lobby_song_remove_votesong_id投移除票
lobby_song_admin_removesong_id管理员移除歌曲
lobby_song_import...导入歌单
lobby_song_rcmd—获取推荐
lobby_song_list—请求歌单
lobby_song_current—请求当前播放
lobby_song_finished—本地播完通知(加速切歌)
lobby_btn_clickkey, userName, rule按钮点击次数限制校验
lobby_poll_votemessage_id, vote_id, options[]MD 投票(实时,不写历史)
lobby_admin_verifytoken管理员身份验证
lobby_mutetarget_fd, minutes禁言(管理员)
lobby_unmutetarget_fd解除禁言(管理员)
lobby_bantarget_fd, reason封禁(管理员)
lobby_kicktarget_fd踢出(管理员)
lobby_isolatetarget_fd, minutes孤立(管理员,消息不广播)
lobby_unisolatetarget_fd解除孤立(管理员)
lobby_deletemessage_id管理员删除消息
get_stickers—获取表情列表
ping—心跳

服务端 → 客户端

type参数说明
lobby_joinednickname, player_id, token, sender_titles, sender_special_titles加入成功快照
lobby_historymessages[]最近 100 条历史
lobby_online_countplayers[]在线列表
lobby_chatid, sender_name, sender_id, content, msg_type, is_bot, sender_titles, sender_special_titles, reply_to, mentions, time, created_at消息广播(详见第 04 篇)
stickerid, sticker_id, sticker_name, sticker_url, sender_name, sender_id, is_bot, time, created_at表情广播
imagecontent(图片URL), sender_name, sender_id, sender_titles, sender_special_titles, time, created_at, client_id?图片广播
lobby_systemtext系统提示
lobby_errortext错误提示
lobby_revokemessage_id, sender_name消息被撤回
lobby_message_deletedmessage_id消息被删除
lobby_report_okmessage举报成功
lobby_mentionedmessage_id, sender_name, content被 @ 提醒
lobby_nudgedsender_name被拍一拍
lobby_btn_click_resultkey, allowed, remaining按钮点击结果
lobby_poll_updatevote_key, counts投票票数更新
lobby_admin_verifiedis_admin, username, role管理员验证结果
lobby_kicked...被踢出
lobby_song_search_resultkeyword, songs[], direct_requested?, song?, error?搜索结果
lobby_song_requestedsong点歌成功
lobby_vote_update / lobby_remove_vote_updatesong_id, votes投票更新
lobby_song_list / list_updateplaylist[], pool[], playing?歌单同步/更新
lobby_song_currentsong当前播放
lobby_song_import_result / lobby_song_import_progress / lobby_song_rcmd_result...导入结果/进度、推荐结果
pong—心跳响应

1.4 五子棋(/ws/board/gomoku,前缀 board_gomoku_) ​

棋类由公共基类 AbstractBoardGameHandler 统一处理,客户端发送的 type 需带前缀(如 board_gomoku_join);服务端下发的 type 同样带前缀。

客户端 → 服务端(公共动作)

type参数说明
board_gomoku_joinfp, nickname, password?, player_token?声明身份(进入棋局前必须先发)
board_gomoku_create_roomboardSize, firstMove(host/guest), mode?, timeLimit?创建房间(firstMove 决定房主执黑/白;其余字段原样存入对局 settings)
board_gomoku_join_roomroomId加入指定房间(座位已满则成为观战者)
board_gomoku_cancel_wait—取消等待
board_gomoku_surrender—认输
board_gomoku_timeout—超时结算
board_gomoku_request_rematch—请求再来一局
board_gomoku_chat_messagemsg房间聊天
board_gomoku_share_invite—分享邀请到聊天室
board_gomoku_open_lobby_chat / board_gomoku_close_lobby_chat—打开/关闭聊天室浮层
board_gomoku_place_piecer, c落子(五子棋专属,0-based 行列)
get_stickers / ping—通用(无前缀)

服务端 → 客户端

type说明
board_gomoku_connected连接就绪
board_gomoku_joined加入成功
board_gomoku_room_created房间创建成功
board_gomoku_lobby_chat_result聊天室浮层操作结果
board_gomoku_invite_result分享邀请结果
board_gomoku_error错误提示
board_gomoku_spectate_start开始观战
board_gomoku_game_start对局开始
board_gomoku_game_over对局结束
board_gomoku_opponent_disconnected对手断开
board_gomoku_chat_message房间聊天广播
board_gomoku_piece_placed落子广播(五子棋专属)

棋盘类下发消息普遍把负载放在 data 字段内,例如: {"type":"board_gomoku_piece_placed","data":{"r":7,"c":7,"color":1,"nextTurn":2}}、 {"type":"board_gomoku_room_created","data":{"roomId":"A1B2C","color":1,"player_id":"..."}}。


1.5 围棋(/ws/board/go,前缀 board_go_) ​

公共动作与五子棋一致(board_go_join、board_go_create_room、board_go_join_room、board_go_cancel_wait、board_go_surrender、board_go_timeout、board_go_request_rematch、board_go_chat_message、board_go_share_invite、board_go_open_lobby_chat、board_go_close_lobby_chat),并额外支持:

客户端 → 服务端(围棋专属)

type参数说明
board_go_place_stoner, c落子
board_go_pass—虚手
board_go_request_resume—请求续弈

服务端 → 客户端(围棋专属)

type说明
board_go_stone_placed落子广播
board_go_passed虚手广播
board_go_move_rejected落子被拒(含 reason)
board_go_resume_requested收到续弈请求
board_go_resumed续弈成功

其余公共下发类型(board_go_connected、board_go_joined、board_go_room_created、board_go_game_start、board_go_game_over 等)与五子棋同名,仅前缀不同。


1.6 海龟汤(/ws/soup,前缀 soup_) ​

type方向说明
soup_lobbyC→S进入大厅/刷新房间列表
soup_createC→S创建房间(选汤面)
soup_join_roomC→S加入房间
soup_pickC→S选汤面
soup_readyC→S准备
soup_askC→S提问
soup_ai_suggestC→S请求 AI 判定建议(出题人侧)
soup_answerC→S出题人作答(yes/no/unrelated/close/correct)
soup_guessC→S猜题
soup_giveupC→S放弃
soup_hintC→S请求提示
soup_nextC→S下一题
soup_leaveC→S离开房间
get_stickers / pingC→S通用
soup_connectedS→C连接就绪
soup_room_listS→C房间列表
soup_room_createdS→C房间创建成功
soup_roomS→C房间状态
soup_roundS→C回合信息
soup_joinedS→C加入成功
soup_questionS→C提问广播
soup_verdictS→C作答结果
soup_guess_resultS→C猜题结果
soup_ai_suggestedS→CAI 建议
soup_hintS→C提示内容
soup_wonS→C猜中
soup_overS→C本题结束
soup_systemS→C系统提示
soup_leftS→C已离开
soup_errorS→C错误提示
pongS→C心跳响应

出题人的作答取值(VERDICTS):yes / no / unrelated / close / correct。


1.7 缘分(默契测试)(/ws/fate,前缀 fate.) ​

type方向说明
fate.acceptC→S接受邀请
fate.declineC→S拒绝邀请
fate.submitC→S提交答案
fate.publishC→S官宣到聊天室
fate.historyC→S查询历史
fate.connectedS→C连接就绪
fate.acceptedS→C邀请已接受
fate.inviteS→C收到邀请
fate.declinedS→C邀请被拒绝
fate.submittedS→C答案已提交
fate.opponent_doneS→C对方已完成
fate.startS→C开始答题
fate.reportS→C生成报告
fate.publishedS→C已官宣
fate.history_listS→C历史列表
fate.errorS→C错误提示

1.8 方块世界(/ws/blockworld,前缀 bw_) ​

type方向说明
bw_joinC→S加入世界
bw_moveC→S移动
bw_digC→S挖掘
bw_placeC→S放置
bw_chatC→S聊天
bw_respawnC→S重生
get_stickers / pingC→S通用
bw_connectedS→C连接就绪
bw_joinedS→C加入成功
bw_player_infoS→C玩家信息
bw_pid_mapS→C玩家 ID 映射
bw_chunkS→C区块数据
bw_blockS→C方块变更广播
bw_correctS→C位置校正(反作弊)
bw_chatS→C聊天广播
bw_leaveS→C玩家离开
bw_errorS→C错误提示
bw_packS→C世界快照打包
pongS→C心跳响应

1.9 临时聊天(/ws/tempchat,前缀 temp_) ​

临时聊天(1v1 私密房),支持邀请制、断线重连、举报。

type方向参数说明
temp_joinC→Snickname, password?, player_token?加入临时聊天(需登录账号)
temp_searchC→Skeyword搜索在线用户
temp_inviteC→Starget_player_id发起邀请
temp_invite_respC→Sinvite_id, accept回应邀请
temp_rejoinC→Sroom_id, nickname, player_token断线重连
temp_historyC→Soffset向上滚动加载历史
temp_chatC→Scontent, sticker_id?, sticker_url?发送消息
temp_exitC→S—退出房间
temp_reportC→Sreason举报
temp_pingC→S—心跳
get_stickersC→S—获取表情
temp_joinedS→Cnickname, has_identity加入成功
temp_search_resultS→Cusers[]搜索结果
temp_inviteS→Cinvite_id, from_name, from_player_id, timeout收到邀请
temp_invite_sentS→Cok, invite_id, error邀请发送结果
temp_invite_resultS→Cok, error邀请处理结果
temp_invite_expiredS→C...邀请过期
temp_invite_dismissedS→C—邀请被撤回
temp_room_createdS→Croom_id, peer_name, peer_player_id, rejoined?, history[]?, pending_join?进入房间/重连
temp_chatS→Csender_name, content, sticker_id?, sticker_url?, time聊天消息广播
temp_historyS→Cmessages[], offset, has_more历史消息
temp_systemS→Ctext系统提示
temp_closedS→Creason, text房间关闭
temp_report_resultS→Cok, message, error举报结果
temp_errorS→Ctext错误提示
temp_pongS→C—心跳响应

1.10 BOT 网关(/bot) ​

BOT 网关是开放给第三方 BOT 客户端的 WebSocket 入口,连接后需先鉴权,成功后自动加入聊天室,复用 lobby_* 全部消息能力(无需再发 lobby_join)。

鉴权流程:

客户端 → 服务端: 连接 /bot
服务端 → 客户端: {"type":"bot_wait_auth"}
客户端 → 服务端: {"type":"bot_auth","player_id":"xx","key":"xx"}
服务端 → 客户端: {"type":"bot_auth_ok","nickname":"xx"} 或 {"type":"bot_error","message":"..."}
type方向参数说明
bot_authC→Splayer_id, key鉴权
bot_pingC→S—心跳
bot_wait_authS→C—等待鉴权
bot_auth_okS→Cnickname鉴权成功
bot_pongS→C—心跳响应
bot_errorS→Cmessage鉴权失败/错误

鉴权失败文案:BOT 鉴权失败:玩家ID或KEY不正确;未鉴权即发其它消息时提示 请先发送鉴权消息 bot_auth。


1.11 管理后台(/{Admin.Path}/ws,前缀 admin_) ​

管理后台 WS 地址由 Admin.Path 决定(默认 /admin/ws)。连接建立后需发送 admin_connect 进行 JWT 鉴权。

客户端 → 服务端

type说明
admin_connect连接(token 认证,onMessage 特判优先处理)
admin_sessions活跃对局列表
admin_spectate / admin_unspectate观战/停止观战
admin_reports / admin_report_detail / admin_mark_reviewed举报审核
admin_ban_player / admin_ban_by_info封禁
admin_broadcast / admin_room_broadcast全服/房间广播
admin_sticker_upload / admin_sticker_add / admin_sticker_batch_add上传/新增表情
admin_sticker_delete / admin_sticker_batch_delete删除表情
admin_sticker_list表情列表
admin_sticker_review_list / admin_sticker_approve / admin_sticker_batch_approve / admin_sticker_reject / admin_sticker_batch_reject表情审核
admin_list / admin_add / admin_delete / admin_change_password管理员管理
admin_own_password修改本人密码
admin_my_logs / admin_all_logs审计日志
admin_lobby_players / admin_lobby_messages / admin_lobby_delete聊天室管理
admin_lobby_ban / admin_lobby_announce / admin_lobby_rate_limit聊天室封禁/公告/限速
admin_lobby_batch_delete / admin_lobby_batch_ban批量删除/封禁
admin_user_search / admin_user_ban / admin_user_unban / admin_user_list_banned用户管理
community_posts / community_post_detail / community_post_review / community_post_batch_review / community_post_pin社区帖子管理
community_comments / community_comment_review社区评论管理
admin_user_get_tags / admin_user_set_special / admin_user_add_tag / admin_user_delete_tag用户标签管理
admin_bot_list / admin_bot_add / admin_bot_set_status / admin_bot_deleteBOT 管理
admin_announce_list公告列表
admin_bot_apply_list / admin_bot_apply_reviewBOT 申请审核
admin_soup_rooms / admin_soup_dissolve海龟汤房间管理
admin_soup_puzzles / admin_soup_puzzle_status / admin_soup_puzzle_delete海龟汤汤面管理

服务端 → 客户端

type说明
admin_connected连接鉴权成功
sessions_list活跃对局列表
need_admin_login需要管理员登录

各管理命令的响应沿用对应业务 type(如 reports_list、sticker_list、admin_list 等),此处不逐一枚举。


二、HTTP 接口 ​

源码:路由定义见 Router.php,控制器实现见 Controllers 目录。

2.1 GET 页面 ​

路径说明
/游戏中心首页(XQFGameHub)
/turing经典 1v1(图灵测试)页面
/lobby聊天室页面
/temp-chat临时聊天页面
/board/gomoku五子棋页面
/board/go围棋页面
/soup海龟汤页面
/blockworld方块世界页面
/community交流社区列表页
/community/post/{id}社区帖子详情页
/account账号中心页面
/song-history点歌回顾页面
/weekly-report周报页面
/agreement用户协议
/privacy隐私政策
/player/{nickname}玩家主页(由 turingIndex 渲染)
/collection/{token}公开收藏页
/oauth/login/{provider}发起 OAuth 登录(302 跳转)
/oauth/callback/{provider}OAuth 回调
/oauth/completeOAuth 完成页面

2.2 GET API ​

路径说明
/api/community/posts社区帖子列表
/api/community/search社区搜索
/api/community/post帖子详情
/api/community/comments评论列表
/api/community/comment-locate评论定位
/api/community/my我的帖子
/api/bot/panel获取 BOT 信息
/api/account/overview账号概览
/api/account/bot-accessBOT 访问权限
/api/generate-player-id生成玩家 ID
/api/player-stats玩家数据统计
/api/chat-history对局记录列表
/api/chat-history/detail对局记录详情
/api/player-profile玩家资料
/api/player-collections玩家收藏
/api/collection/detail收藏详情
/api/collection/by-token按 token 查收藏
/api/player-messages我的留言
/api/player/tags获取玩家标签
/api/macros宏列表
/api/temp/users在线用户列表
/api/sticker/list表情列表
/api/soup/my-puzzles我的汤面列表
/api/soup/public-puzzles公开汤面列表
/api/bot/stickersBOT 表情列表
/api/weekly-report获取周报数据
/api/song-history点歌回顾列表
/api/song-history/detail点歌回顾详情
/api/oauth/providersOAuth 提供商列表
/api/oauth/bindingsOAuth 绑定列表
/api/oauth/pending-info待绑定信息
/api/avatar/{player_id}玩家头像

2.3 POST API ​

路径说明
/api/player-message/hide隐藏留言
/api/player-message/settings留言设置
/api/player/worn-tags设置佩戴标签
/api/chat-history/collect收藏记录
/api/collection/like点赞收藏
/api/sticker/upload上传表情
/api/image/upload上传图片(返回一次性 key)
/api/sticker/delete删除表情
/api/sticker/add-to-mine添加表情到我的
/api/macros保存宏(新建/更新)
/api/macros/delete删除宏
/api/soup/my-puzzles创建汤面
/api/soup/my-puzzles/{id}/share分享汤面
/api/soup/public-puzzles/{id}/copy复制公开汤面
/api/temp/invite发起临时聊天邀请
/api/temp/invite/decline拒绝邀请
/api/bot/apply申请 BOT
/api/account/nickname修改昵称
/api/account/avatar上传头像
/api/account/password修改密码
/api/account/email绑定邮箱
/api/email/send-code发送邮箱验证码
/api/email/auth邮箱验证
/api/bot/panel/nickname更新 BOT 昵称
/api/bot/panel/key轮换 BOT KEY
/api/community/post/save保存帖子
/api/community/post/delete删除帖子
/api/community/like帖子点赞
/api/community/favorite帖子收藏
/api/community/comment发表评论
/api/community/comment/delete删除评论
/api/community/report举报帖子
/oauth/login/{provider}绑定模式发起 OAuth(form POST)
/api/oauth/unbind解绑 OAuth
/api/oauth/sync-avatar立即同步头像
/api/oauth/confirm-create确认创建 OAuth 账号
/api/oauth/cancel取消 OAuth 绑定

2.4 PUT / DELETE API ​

方法路径说明
PUT/api/soup/my-puzzles/{id}更新我的汤面
DELETE/api/soup/my-puzzles/{id}删除我的汤面

2.5 管理后台 HTTP ​

方法路径说明
GET/{Admin.Path}(默认 /admin)管理后台页面
POST/{Admin.Path}/api/login(默认 /admin/api/login)管理员登录

管理后台路径与账号由 Config/App.php 的 Admin.Path / Admin.Username / Admin.Password 配置,首次启动自动创建超级管理员。

2.6 静态资源 ​

以下路径由 GameController::STATIC_RESOURCES 白名单提供:

/script.js、/style.css、/favicon.svg、/shared.js、/shared/md-renderer.js、/shared/md-renderer.css、 /admin/admin.js、/admin/admin_mdv3.js、/admin/admin.css、/admin/favicon.svg、 /lobby/lobby.css、/lobby/lobby.js、/lobby/lobby-bot.js、 /board/board-game.css、/board/gomoku/gomoku.css、/board/gomoku/gomoku.js、 /board/go/go.css、/board/go/go.js、/board/go/go-chat.js、 /weekly-report/weekly-report.css、/weekly-report/weekly-report.js、 /temp-chat/temp-chat.css、/temp-chat/temp-chat.js、/temp-invite.js、 /soup/soup.css、/soup/soup.js、/soup/index.html、 /agreement/index.html、/privacy/index.html、/turing/index.html、 /hub.css、/hub.js、/hub-nav.js、/comment-widget.js、 /account/account.css、/account/account.js、/account/sticker-manager.js、/account/index.html、 /blockworld/blockworld.css、/blockworld/blockworld.js、/blockworld/index.html、 /community/community.css、/community/community.js、/community/post.js、/community/index.html、/community/post.html、 /song-history/song-history.css、/song-history/song-history.js


三、通用说明 ​

  • 身份:玩家通过 player_token 或 player_id + 密码验证;聊天室同时使用 nickname。BOT 使用独立账户 ID(bot_account_id,复用玩家身份体系)并需 player_id + key 鉴权。
  • 管理员:登录 /{Admin.Path} 获取 JWT token(HMAC-SHA256),聊天室通过 lobby_admin_verify、管理后台通过 admin_connect 验证。
  • 心跳:ping / pong(BOT 为 bot_ping/bot_pong,临时聊天为 temp_ping/temp_pong),超时自动清理连接。
  • 路由:WS 连接按路径分派 Handler;消息按 type 前缀匹配(空前缀兜底)。admin_connect、ping、pong 在分发前被特判处理。
  • 权限:管理员操作(ban/mute/isolate/kick/delete 等)服务端强制校验 isAdmin。
  • 封禁:IP + 指纹 + player_id 三维,所有模式接入检查(含图片上传接口)。
  • 防刷:同 IP/指纹最多 3 账号,创建频率 10 分钟限 1 次;聊天室发言有频率限制,图片上传 60 秒内最多 10 次。
  • 时间字段:全站统一为 Unix 秒级时间戳(time / created_at),展示格式由消费端自行解析。
  • 开关配置:海龟汤、缘分、方块世界分别受 Soup.Enabled、Fate.Enabled、BlockWorld.Enabled 控制;关闭时不注册对应路由。
最近更新