Files
TurboSu/CONTRIBUTING.md
T

2.0 KiB

贡献指南

贡献方式

提交游戏插件 (.tsp)

创建一个包含 manifest.jsonparser.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 许可下发布。