Skip to content
feiyang1128Public

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1,769 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

syncFile

自用同步仓库,用来集中维护 TV 配置、Mihomo 规则配置、远端规则列表和部分发布资产。

目录

  • TV/:TVBox、MoonTV 等配置文件。
  • Mihomo/file/:Mihomo 配置、规则源、重命名脚本和兼容规则。
  • Mihomo/file/js/:JavaScript 脚本文件。
  • Mihomo/file/list/:rule-providers 使用的 Clash list 规则集。
  • Mihomo/file/txt/:rule-providers 使用的 txt 规则集。
  • Mihomo/file/yml/:Mihomo YAML 配置文件。
  • scripts/:从远端 URL 同步文件的脚本和清单。
  • app/:手动纳入仓库的小体积 APK。

文件同步

使用下面的命令,可以同步 scripts/sync-from-site.json 中配置的文件:

powershell -ExecutionPolicy Bypass -File .\scripts\sync-from-site.ps1

scripts/sync-from-site.json 中的每一项都表示“本地文件路径”对应一个“远端 URL”:

{
  "files": [
    {
      "path": "TV/tvbox.json",
      "url": "https://example.com/tvbox.json"
    }
  ]
}

如果需要同步更多文件,继续往 files 数组里追加即可。

Mihomo 配置

订阅转换入口配置在 Mihomo/file/yml/cfg-all.yml:

custom:
  clash_rule_base: https://gh-proxy.org/https://raw.githubusercontent.com/feiyang1128/syncFile/refs/heads/main/Mihomo/file/yml/base-all.yml
  enable_rule_generator: false
  overwrite_original_rules: true
  proxy_groups:
    - name: ♻️ 自动选择
      type: url-test
      lazy: false

当前入口配置:

  • cfg-all.yml:完整配置
  • cfg-no6.yml:不带 IPV6
  • cfg-nocf.yml:不带 cloudflare
  • cfg-no6nocf.yml:不带 IPV6 和 cloudflare

对应规则底座:base-all.yml、base-no6.yml、base-nocf.yml、base-no6nocf.yml。

YAML 配置负责订阅转换策略组;Mihomo/file/yml/base-all.yml 维护 Mihomo 基础设置、rule-providers 和 rules。策略组使用对象式 proxy_groups 显式设置 lazy: false。当前策略组包含:

  • 🚀 节点选择、♻️ 自动选择、🌐 IPV6、✨ AI、🌍 cloudflare
  • 🔮 负载-轮询、🔮 负载-散列、🔯 故障转移
  • 🎯 全球直连、🛑 全球拦截、🐟 漏网之鱼

所有会进行延迟测试的策略组都统一设置为 3 分钟测试一次:

interval: 180

规则来源

Mihomo/file/yml/base-all.yml 通过 rule-providers 引用的规则集包括:

  • list:direct、proxy、unban
  • txt:ipv6、cloudflare-extra、reject-extra
  • reject:来自 Mihomo/file/txt/reject.txt
  • ai:来自 Mihomo/file/txt/AI.txt
  • ai-extra:来自 Mihomo/file/txt/AI-extra.txt
  • unban:由 scripts/sync-from-site.json 从 ACL4SSR 同步

syncFile workflow 每小时运行一次,会按 scripts/sync-from-site.json 更新:

  • Mihomo/file/list/unban.list
  • Mihomo/file/txt/reject.txt
  • Mihomo/file/txt/AI.txt

APK 和大文件

本地文件和自动同步文件统一按大小判断,不按文件后缀特殊处理。小于 100 MiB 的文件可以直接提交:

git add app\example.apk

本地提交前可以启用仓库内置 hook,让 Git 自动按大小拦截大文件:

powershell -ExecutionPolicy Bypass -File .\scripts\install-git-hooks.ps1

启用后,任何已暂存文件只要大于等于 104857600 字节,也就是 100 MiB,提交时都会被拦截;小于 100 MiB 的文件正常提交。这个判断不区分 .apk、.zip 或其它后缀。

自动同步 workflow 也只按文件大小判断同步下来的文件是进入 Git 提交,还是发布到 GitHub Release:

  • 小于 104857600 字节的同步文件进入 Git 提交
  • 大于等于 104857600 字节的同步文件发布到 synced-assets-latest release
  • 被 release 管理的文件会在同一次 workflow 里上传,并自动排除出 Git 提交
  • release 中使用文件名作为资产名;同名资产会先删除再重新上传,保证始终是最新文件
  • 下载地址格式为 https://github.com/feiyang1128/syncFile/releases/download/synced-assets-latest/<文件名>

自动化

仓库通过 syncFile GitHub Actions 自动更新文件:

  • syncFile:每小时运行一次,按 scripts/sync-from-site.json 同步远端文件。
  • 在 GitHub 网页编辑文件并提交到 main,或将本地修改推送到 main 后,立即触发相关配置生成;实际完成时间取决于 Actions 排队和运行时间。
  • 每次提交都会执行 scripts/build-mihomo-base.ps1,将 Mihomo/file/yml/base-common.yml 的公共配置更新到 base-all.yml、base-no6.yml、base-nocf.yml、base-no6nocf.yml,保留各文件从 rule-providers: 开始的独立配置,并自动提交生成结果。公共配置应修改 base-common.yml。
  • 提交触发的任务只生成依赖文件;定时或手动运行工作流时才下载上游文件。直接通过 URL 引用的规则和脚本无需重新生成,客户端按自身刷新周期获取更新。
  • 同一分支的任务串行运行;自动提交使用 GITHUB_TOKEN,不会重复触发工作流。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages