Files
better-genshin-impact/.github/workflows/cnb_trigger.py

94 lines
2.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Better Genshin Impact Build Trigger Script
用于触发CNB构建的Python脚本
"""
import requests
import json
import sys
import argparse
def trigger_build(token, branch="main", event="api_trigger_one", runid=None):
"""
触发构建请求
Args:
token (str): 授权token
branch (str): 分支名称默认为main
event (str): 事件类型默认为api_trigger_one
runid (str): 运行ID可选参数
Returns:
dict: API响应结果
"""
url = "https://api.cnb.cool/bettergi/better-genshin-impact/-/build/start"
headers = {
"Accept": "application/json",
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
"Host": "api.cnb.cool",
"Connection": "keep-alive"
}
data = {
"branch": branch,
"event": event
}
# 如果提供了runid则添加到env中
if runid:
data["env"] = {
"RUN_ID": runid
}
try:
print(f"正在发起构建请求...")
print(f"URL: {url}")
print(f"请求体: {json.dumps(data, indent=2, ensure_ascii=False)}")
response = requests.post(url, headers=headers, json=data)
print(f"响应状态码: {response.status_code}")
if response.status_code == 200:
result = response.json()
print("构建触发成功!")
print(f"响应内容: {json.dumps(result, indent=2, ensure_ascii=False)}")
return result
else:
print(f"请求失败: {response.status_code}")
print(f"错误信息: {response.text}")
return None
except requests.exceptions.RequestException as e:
print(f"请求异常: {e}")
return None
except json.JSONDecodeError as e:
print(f"JSON解析错误: {e}")
print(f"响应内容: {response.text}")
return None
def main():
parser = argparse.ArgumentParser(description="触发Better Genshin Impact构建")
parser.add_argument("token", help="授权token")
parser.add_argument("--branch", default="main", help="分支名称 (默认: main)")
parser.add_argument("--event", default="api_trigger_one", help="事件类型 (默认: api_trigger_one)")
parser.add_argument("--runid", help="运行ID (可选)")
args = parser.parse_args()
if not args.token:
print("错误: 必须提供token参数")
sys.exit(1)
result = trigger_build(args.token, args.branch, args.event, args.runid)
if result is None:
sys.exit(1)
if __name__ == "__main__":
main()