TapTap SCE小游戏自动发布工具
Project description
auto-publish
TapTap SCE小游戏自动发布工具,用于自动化发布和管理小游戏项目。
功能特点
- 自动化处理游戏资源(图片、文件夹等)
- 支持批量上传游戏文件
- 自动将图片转换为 base64 编码
- 支持自定义配置参数
- 提供详细的错误处理和日志输出
- 支持
.sceignore文件忽略指定文件和目录 - 多种灵活的 Token 输入方式
Token 配置 (重要)
认证 Token 不再通过 minigame_config.json 文件配置。您可以通过以下三种方式提供 Token,优先级从高到低:
- 命令行参数: 通过
-t或--token参数直接传入。python sce_minigame_publisher.py --token YOUR_API_TOKEN
- .env 文件: 在项目根目录下创建
.env文件,并设置SCE_PUBLISH_TOKEN变量。SCE_PUBLISH_TOKEN="YOUR_API_TOKEN"
工具会自动加载此文件。 - 手动输入: 如果以上两种方式均未提供 Token,程序启动时会提示您在命令行中手动输入。
使用方法
- 配置
minigame_config.json文件,设置相关参数 (除了 Token,并且现在是扁平化结构)。 - 将游戏资源文件放置在指定位置。
- 准备好您的 API Token (通过上述任一方式)。
- 运行主程序:
python sce_minigame_publisher.py
命令行参数
# 使用默认配置文件 (minigame_config.json)
python sce_minigame_publisher.py
# 指定配置文件
python sce_minigame_publisher.py -c path/to/your/config.json
# 指定 Token
python sce_minigame_publisher.py -t YOUR_API_TOKEN
# 显示详细日志
python sce_minigame_publisher.py --verbose
# 自定义API URL
python sce_minigame_publisher.py --url http://your-api-url.com
# 自定义内容类型
python sce_minigame_publisher.py --content-type "application/json"
# 显示版本信息
python sce_minigame_publisher.py -v
| 参数 | 描述 |
|---|---|
-c, --config |
配置文件路径 (默认: minigame_config.json) |
-t, --token |
API Token (会覆盖 .env 文件和手动输入) |
-v, --version |
显示版本信息 |
--verbose |
显示详细日志 |
--url |
自定义API URL (默认值已内置) |
--content-type |
内容类型 (默认: application/json) |
配置文件说明 (minigame_config.json)
配置文件 minigame_config.json 现在采用扁平化结构,不再包含顶层的 data 字段。所有先前的 data 子字段现在都位于配置文件的顶层。示例如下:
{
"projectID": "your-project-id",
"tapID": 123456,
"title": "游戏标题",
"outDirectory": "path/to/game/folder",
"screenOrientation": "portrait or landscape",
"description": "游戏描述",
"tags": ["标签1", "标签2"],
"versionName": "1.0.0",
"banner": ["path/to/banner.png"],
"icon": ["path/to/icon.png"],
"screenshots": ["path/to/screenshot1.png", "path/to/screenshot2.png"]
}
关键字段说明:
projectID: (字符串) 您的项目 ID。tapID: (整数) TapTap 平台的游戏 ID。title: (字符串) 游戏标题。outDirectory: (字符串) 包含游戏构建文件的目录路径,相对于此配置文件。screenOrientation: (字符串) 屏幕方向,例如 "portrait" 或 "landscape"。description: (字符串) 游戏描述。tags: (字符串数组) 游戏的标签。versionName: (字符串) 游戏版本号,例如 "1.0.0"。banner: (字符串数组) Banner 图片的路径列表,相对于此配置文件。icon: (字符串数组) 图标图片的路径列表,相对于此配置文件。screenshots: (字符串数组) 游戏截图的路径列表,相对于此配置文件。
本地测试 (无需真实服务器)
项目包含一个简单的本地HTTP服务器 (test_server.py) 和测试配置文件 (test_config.json),用于在本地验证工具的功能,特别是文件处理和忽略规则。请确保 test_config.json 也更新为扁平化结构。
准备测试环境
- 确保测试目录和文件存在: 项目应包含
test_outdir/目录,内有index.html,script.js,debug.log等文件。 - 创建忽略规则文件: 在项目根目录(与
test_config.json同级)创建.sceignore文件,例如:# 忽略日志文件 *.log # 忽略临时文件 *.tmp # 忽略特定目录 (相对于 outDirectory) ignore_this_dir/
注意:.sceignore文件中的模式是相对于test_config.json中outDirectory指定的目录 (test_outdir/) 来编写的。
运行测试
-
启动本地测试服务器: 打开一个终端,运行:
python test_server.py服务器将在
http://localhost:8000启动并等待请求。 -
运行发布脚本: 打开另一个终端,运行发布脚本,指定测试配置文件 (确保其为扁平结构) 和本地服务器URL:
# 使用测试配置,指向本地服务器,并开启详细日志 python sce_minigame_publisher.py -c test_config.json --url http://localhost:8000/api/v1/update-minigame --verbose
验证结果
- 在服务器终端: 查看打印出的请求头和JSON内容。检查
Folder Content Summary部分,确认.sceignore中指定的文件(如debug.log)没有被包含在内。JSON 内容现在应该是扁平的,不含data外层。 - 在发布脚本终端: 查看脚本的输出,确认状态码为
200,并收到了来自测试服务器的成功响应。
完成后按 Ctrl+C 停止测试服务器。
注意事项
- 确保所有图片文件都存在且格式正确
- 游戏资源文件夹中的文件将被自动转换为 base64 编码
- 请妥善保管 API token,不要泄露
- API Token 必须通过命令行参数、.env 文件 (变量名为
SCE_PUBLISH_TOKEN) 或手动输入提供,并且只能包含ASCII字符 - 建议在发布前先进行测试
- 确保您的
minigame_config.json(和test_config.json) 已更新为新的扁平化结构。
常见问题解决
如果您在发布过程中遇到问题,请检查:
- 配置文件是否正确 (确保是扁平结构,不包含
token字段) - Token 是否已通过正确方式提供 (命令行、.env 文件中的
SCE_PUBLISH_TOKEN或手动输入),是否有效,是否只包含ASCII字符 - 图片路径是否正确
- 游戏文件夹是否存在
依赖项
- Python 3.6+
- requests
- python-dotenv # 用于从 .env 文件加载 Token
许可证
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sce_minigame_publisher-0.1.5.tar.gz.
File metadata
- Download URL: sce_minigame_publisher-0.1.5.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58877a35a480e3138062cd05e3739c6aef9957bb8bc899f9926245b01ca24c57
|
|
| MD5 |
267a1253092ce6fb88020fc327cb6b9d
|
|
| BLAKE2b-256 |
20c25000f08fe59cfdcffe5a514fbbc3cdc47d6511934580a898e3c258f5af1b
|
File details
Details for the file sce_minigame_publisher-0.1.5-py3-none-any.whl.
File metadata
- Download URL: sce_minigame_publisher-0.1.5-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1fb3ab04d606253ca2715c769e1154523fd6cf7ba0bcabe81166472009f57ed
|
|
| MD5 |
44c78c35fbd095d75a25d5b4b9252d30
|
|
| BLAKE2b-256 |
050c56c9ec0888d2fb259a4ae9d7bb5eca3d41f93bf4e0b9f6001329fdeab1a6
|