3.1.2 • Published 5 years ago
fake-luogu-paintboard-server v3.1.2
fake-luogu-paintboard-server
模拟洛谷冬日绘板服务器,可用于测试脚本。
安装/运行
NPM
npm install -g fake-luogu-paintboard-serverfake-luogu-paintboard-server --help手动安装
git clone https://github.com/ouuan/fake-luogu-paintboard-server
cd fake-luogu-paintboard-server
yarnyarn start --helpHTTP API
URL: http://localhost:<port>
GET(/paintBoard)
返回 洛谷冬日绘板主页 的 HTML。
GET(/paintBoard/board)
返回一个包含 WIDTH 行的字符串,其中第 i 行包含 HEIGHT 个字符,其中的第 j 个字符是绘板上第 i + 1 列第 j + 1 行的颜色的编号的 32 进制(10-31 用小写字母 a-v 表示)。
POST(/paintBoard/paint)
要求:
- 传入一个带
_uid和__client_id的 Cookie(不需要是真实的 uid 和 client_id,uid 用于计算冷却时间,client_id 没有实际意义); - Referer 为
Referer: https://www.luogu.com.cn/paintBoard; - data 为:
{x:<columnIndex>,y:<rowIndex>,color:<colorIndex>},表示在第x + 1列第y + 1行的像素画编号为color的颜色。
WebSocket API
URL: ws://localhost:<wsport>/ws
send({"type":"join_channel","channel":"paintboard"})
服务器收到客户端的这条消息后会回复 {"type":"result"}。
receive({"type":"paintboard_update",x,y,color})
在一个绘制事件成功时,服务器会向所有已连接的客户端发送 {"type":"paintboard_update",x,y,color} 表示这次绘制的像素坐标以及新颜色的编号。