本文档详细介绍了 new-pac 仓库自动化系统中使用的自动更新脚本。这些脚本用于维护维基页面和 README 文件中最新的域名信息和时间戳,确保用户能够访问有效的翻墙资源。
有关这些脚本如何通过 GitHub Actions 进行调度和执行的信息,请参阅GitHub Actions 工作流程。
更新脚本系统由两个主要的 Python 脚本组成
update_wiki_page.py - 更新主维基页面和 README.md 中的域名数字和时间戳update_v2ray_wiki.py - 专门更新 V2Ray 主机信息、vmess 链接和时间戳来源:update_wiki_page.py1-62 update_v2ray_wiki.py1-63
这些更新脚本以一种简单而有效的工作流程运行,以保持域名信息和时间戳的新鲜度。
来源:update_wiki_page.py6-8 update_v2ray_wiki.py8-9
两个脚本都使用正则表达式来识别和递增域名中的数字。这是域名轮换系统的关键部分,有助于维持对翻墙资源的访问。
该过程包括
来源:update_wiki_page.py21-29 update_v2ray_wiki.py22-34
两个脚本都会将各种文件中的时间戳更新为当前的北京时间。
来源:update_wiki_page.py10-12 update_wiki_page.py31-35 update_v2ray_wiki.py11-13 update_v2ray_wiki.py52-57
此脚本使用最新的域名信息和时间戳更新主维基文档和 README。
wiki/直翻通道.md - 包含翻墙信息的主维基页面README.md - 包含时间戳的仓库 READMEfanN.635876.xyz 的域名数字此脚本专门用于更新 V2Ray 配置信息,包括主机域名和 vmess 链接。
wiki/v2ray免费账号.md - 包含 V2Ray 配置详情的维基页面yN.582185.xyz 的主机数字两个脚本都严重依赖正则表达式来定位和替换特定模式
| 脚本 | 模式用途 | 正则表达式 |
|---|---|---|
| update_wiki_page.py | 域名递增 | r"(fan)(\d+)(\.635876\.xyz)" |
| update_wiki_page.py | 时间戳 | r"北京时间\d{4}年\d{2}月\d{2}日\d{2}点\d{2}分更新" |
| update_v2ray_wiki.py | 主机提取 | r"伪装域名(host)\s+|\s+(y)(\d+)(\.582185\.xyz)" |
| update_v2ray_wiki.py | 主机替换 | r"(伪装域名(host)\s+|\s+y)(\d+)(\.582185\.xyz)" |
| update_v2ray_wiki.py | Vmess 链接 | r"vmess://([A-Za-z0-9+/=]+)" |
| update_v2ray_wiki.py | 时间戳 | r"\*\*更新时间:\*\* 北京时间\d{4}年\d{2}月\d{2}日\d{2}点\d{2}分" |
来源:update_wiki_page.py29 update_wiki_page.py32-33 update_v2ray_wiki.py23 update_v2ray_wiki.py37 update_v2ray_wiki.py50 update_v2ray_wiki.py53-54
increment_domain and increment_host 函数两个脚本都包含类似的辅助函数,用于捕获和处理域名数字递增
The update_v2ray_wiki.py 脚本包含一个独特的功能来更新 vmess 链接,这涉及到 Base64 解码、JSON 修改和重新编码
这些更新脚本旨在通过 GitHub Actions 自动运行,GitHub Actions 会定期执行它们。GitHub Actions 工作流程每 10 分钟运行一次这些脚本,以保持域名和时间戳的最新状态。
有关执行这些脚本的自动化工作流程的详细信息,请参阅 GitHub Actions 工作流程文档。
更新脚本依赖于多个 Python 库
| 库 | 目的 |
|---|---|
| re | 用于模式匹配和替换的正则表达式操作 |
| os | 文件路径操作和环境交互 |
| datetime | 日期和时间处理 |
| pytz | 时区支持(特别是北京时间) |
| base64 | vmess 链接的编码/解码(在 update_v2ray_wiki.py 中) |
| json | 解析和修改 vmess 配置(在 update_v2ray_wiki.py 中) |
来源:update_wiki_page.py1-4 update_v2ray_wiki.py1-6
这些更新脚本是 new-pac 仓库自动化系统的重要组成部分。通过定期递增域名数字和更新时间戳,它们有助于确保用户始终可以访问有效的翻墙资源,而无需手动干预。
脚本的简单性,加上通过 GitHub Actions 进行的定时执行,创建了一个可靠的系统,用于维护需要频繁更新以避免审查的领域中的最新信息。