2.0 KiB
2.0 KiB
贡献指南
贡献方式
提交游戏插件 (.tsp)
创建一个包含 manifest.json 和 parser.py 的文件夹,压缩为 zip 改后缀:
my_game/
├── manifest.json
└── parser.py
manifest.json
{
"id": "unique_game_id",
"name": "游戏名称",
"parser_type": "forza",
"description": "简短描述",
"author": "你的名字",
"version": "1.0.0",
"default_port": 20777
}
parser.py 规范
必须实现 get_parser() 函数,返回对象包含:
import time
from server.telemetry.data import TelemetryData
def get_parser():
return MyParser()
class MyParser:
def game_id(self) -> str:
return "unique_game_id"
def parse(self, data: bytes, addr: tuple) -> TelemetryData:
td = TelemetryData(game_id="unique_game_id", timestamp=time.time())
td.raw = {"raw_hex": data.hex(), "length": len(data)}
# 填充遥测字段...
return td
安装方式:在 TurboSu 设置页面 → 游戏插件管理 → 导入 .tsp
提交仪表盘主题 (.tsd)
创建独立文件夹:
my_dashboard/
├── manifest.json # 元信息 (参考下方格式)
└── index.html # 完整独立页面
index.html 需包含:
- WebSocket 连接:
ws://<host>/ws - 接收
telemetry消息类型的数据 - 用
data-bind="字段名"属性绑定数据 - 比例约束渲染逻辑
安装方式:在 TurboSu 仪表盘页面 → 导入 .tsd,或右键卡片导出。
报告 Bug
请在 Issue 中包含:
- 系统信息 (OS, Python 版本)
- 错误日志 (
logs/turbosu.log) - 复现步骤
功能建议
欢迎提交 Issue 讨论。
开发环境
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
代码规范
- Python: PEP 8
- 日志使用
utils.logger,不用print - 前端 JS 模块化,文件放对应目录
许可证
贡献即表示同意代码在 Apache 2.0 许可下发布。