菜单

更新脚本

相关源文件

目的和概述

本文档详细介绍了 new-pac 仓库自动化系统中使用的自动更新脚本。这些脚本用于维护维基页面和 README 文件中最新的域名信息和时间戳,确保用户能够访问有效的翻墙资源。

有关这些脚本如何通过 GitHub Actions 进行调度和执行的信息,请参阅GitHub Actions 工作流程

更新脚本系统由两个主要的 Python 脚本组成

  1. update_wiki_page.py - 更新主维基页面和 README.md 中的域名数字和时间戳
  2. 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

核心功能

域名数字递增

两个脚本都使用正则表达式来识别和递增域名中的数字。这是域名轮换系统的关键部分,有助于维持对翻墙资源的访问。

该过程包括

  1. 使用正则表达式定位域名模式
  2. 捕获前缀、数字部分和后缀
  3. 将数字部分递增 1
  4. 用新数字重新组合域名

来源: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

脚本特定功能

update_wiki_page.py

此脚本使用最新的域名信息和时间戳更新主维基文档和 README。

修改的文件

  • wiki/直翻通道.md - 包含翻墙信息的主维基页面
  • README.md - 包含时间戳的仓库 README

更新操作

  1. 递增格式为 fanN.635876.xyz 的域名数字
  2. 更新维基和 README 文件中的北京时间戳

来源:update_wiki_page.py6-62

update_v2ray_wiki.py

此脚本专门用于更新 V2Ray 配置信息,包括主机域名和 vmess 链接。

修改的文件

  • wiki/v2ray免费账号.md - 包含 V2Ray 配置详情的维基页面

更新操作

  1. 递增格式为 yN.582185.xyz 的主机数字
  2. 通过以下方式更新 vmess 链接:
    • 解码 Base64 编码的 vmess 链接
    • 更新 JSON 配置中的主机
    • 重新编码为 Base64
  3. 更新北京时间戳

来源:update_v2ray_wiki.py8-63

技术实现细节

正则表达式模式

两个脚本都严重依赖正则表达式来定位和替换特定模式

脚本模式用途正则表达式
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.pyVmess 链接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

The increment_domain and increment_host 函数

两个脚本都包含类似的辅助函数,用于捕获和处理域名数字递增

update_wiki_page.py 中的域名递增

来源:update_wiki_page.py22-26

update_v2ray_wiki.py 中的主机递增

来源:update_v2ray_wiki.py31-34

The update_v2ray_wiki.py 脚本包含一个独特的功能来更新 vmess 链接,这涉及到 Base64 解码、JSON 修改和重新编码

来源:update_v2ray_wiki.py40-48

与自动化系统集成

这些更新脚本旨在通过 GitHub Actions 自动运行,GitHub Actions 会定期执行它们。GitHub Actions 工作流程每 10 分钟运行一次这些脚本,以保持域名和时间戳的最新状态。

有关执行这些脚本的自动化工作流程的详细信息,请参阅 GitHub Actions 工作流程文档。

技术依赖

更新脚本依赖于多个 Python 库

目的
re用于模式匹配和替换的正则表达式操作
os文件路径操作和环境交互
datetime日期和时间处理
pytz时区支持(特别是北京时间)
base64vmess 链接的编码/解码(在 update_v2ray_wiki.py 中)
json解析和修改 vmess 配置(在 update_v2ray_wiki.py 中)

来源:update_wiki_page.py1-4 update_v2ray_wiki.py1-6

结论

这些更新脚本是 new-pac 仓库自动化系统的重要组成部分。通过定期递增域名数字和更新时间戳,它们有助于确保用户始终可以访问有效的翻墙资源,而无需手动干预。

脚本的简单性,加上通过 GitHub Actions 进行的定时执行,创建了一个可靠的系统,用于维护需要频繁更新以避免审查的领域中的最新信息。