Files
ttshop/REAMME.md
T
2026-10-10 14:48:41 +08:00

1.8 KiB
Executable File
Raw Blame History

TTSHOP 同步脚本

sync.py 使用 Python 标准库和 requests 读取公开 Google Sheets 工作簿,并把所有工作表合并成一个 UTF-8 HTML 表格,固定写入 data/merged.html。工作表名称和顺序来自 XLSX 导出,单元格使用公开 gviz 接口返回的显示值。

合并规则:每张表第一行是标题;列按首次出现顺序取并集;源表已有的 LinkName 会改名为 LinkName_Source、LinkName_Source_2 等并保留;脚本最后追加生成的 LinkName 列。HTML 文本会进行转义。内容没有变化时不产生 Git 提交,变化时只提交 data/merged.html 并推送到 main。

本地运行

python -m pip install -r requirements.txt
python sync.py

脚本默认使用固定工作簿 ID 1DPbdVsX3SG_kgDXs2j34mDAgplRSfcAWKKG9yqalFmw、仓库 ttshop、分支 main 和输出路径 data/merged.html。本地运行需要当前目录是该仓库,并且 Git 已配置可推送的 origin;不要把凭据写入 remote URL。

环境变量

  • GIT_CREDENTIAL_SECRET:可选的 Git 密码/token。脚本通过临时 GIT_ASKPASS 使用,不写入 URL、日志或提交文件。
  • GITEA_OWNER:Git askpass 的用户名提示值;workflow 从仓库变量注入。
  • GITEA_BASE_URL:Gitea 地址,作为 workflow 配置保留;实际推送使用 checkout 提供的 origin。
  • SYNC_FAILURE_WEBHOOK_URL:可选的失败通知 URL。失败时最多发送一次简短通知,通知失败不会覆盖原始异常。

Gitea Actions

.gitea/workflows/sync.yml 每天执行一次 0 19 * * *(按 UTC 解释时为 Asia/Shanghai 次日 03:00),也支持手动触发。workflow 只安装 requirements.txt 中的 requests 并运行 python sync.py,不依赖包 CLI、测试 extras、runner、scheduler 或报告系统。