WangQiFei

蒸 馏 器


思想提纯
  • 首页
  • 归档
  • 标签
  • 关于
  •     

© 2024  by  Wangqifei

快柠檬的节点提取和转换

发布于 2023-06-09 17:06 科学上网 

测试 lemon 使用,过度依赖现有运行规则,随时会失效,不保证维护。
这里只是探索功能实现的技术记录,谢绝传播使用。

鉴于 Clash 的完善,目前对各平台的良好支持,一个配置全平台通用的便利让我不的不考虑全面转战 Clash。
对个人而言:折腾 > 使用 。

项目地址

一些说明

  • 通过提取快柠檬客户端 v2rayNG 的订阅链接通过 shortcuts 自动更新到 lemon.site
  • extract-lemon-list.yml 中没有加入异常处理机制,为确保运行正常,务必确保 lemon.site 文件内容为单行网址且仅有单行,shortcuts 里有处理自动提交时可忽略该问题(目前在写 shortcuts 的过程中遇到了不能正常使用 github api 异常还没解决)。
  • 触发 GithubAction extract-lemon-list.yml
    • 每 3 个小时自动更新一次
    • 读取 lemon.site 内的订阅链接网址对应的内容
    • 将网址内容同步至 lemon.sub,解决 v2ray 订阅
    • 对 lemon.sub 进行解码同步至 lemon.list,解决 loon 订阅
    • 修改 lemon.site 读取的链接网址为客户端提供的 Clash 的订阅网址,并读取 clash 订阅到 lemon.yaml
    • 提取 clash 订阅内的 proxies 内容到 lemonnode.yaml
    • 使用 lemonlite.yaml 保存 clash 订阅内的 proxies 内容,并与 lemonbanner.yaml 合并到 lemonliste.yaml 形成一个完整的自定义订阅内容
    • 注:lemonbanner.yaml 内容为代理集和规则集合。
  • 不是最优解,只是能用。
  • 附 extract-lemon-list.yml 参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
name: extract_lemon_list
on:
schedule:
- cron: '0 */3 * * *'
push:
branches: [ main ]
path:
- "lemon.site"
jobs:
read-and-save:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Read and save content
run: |
url=$(cat lemon.site)
echo "url=$url" >> $GITHUB_ENV
echo "" > lemon.sub
echo "" > lemon.list
curl -L "$url" -o lemon.sub
cat lemon.sub | base64 -d > lemon.list

url2=$(cat lemon.site | sed 's/vrn/ch/g')
echo "url2=$url2" >> $GITHUB_ENV
echo "" > lemon.yaml
curl -L "$url2" -o lemon.yaml

echo "" > lemonlite.yaml
cat lemon.yaml | perl -ne 'print unless /^proxy-group/../^$/' > lemonlite.yaml
cat lemonlitebanner.yaml >> lemonlite.yaml
echo "" > lemonnode.yaml
cat lemon.yaml | perl -ne 'print unless /^proxy-group/../^$/' > lemonnode.yaml

- name: Commit changes
run: |
git config --local user.email " "
git config --local user.name " "
git add lemon.sub lemon.list lemon.yaml lemonlite.yaml lemonnode.yaml
git commit -m "Add lemon.sub lemon.list lemon.yaml lemonlite.yaml lemonnode.yaml"
git push

关于 github action 的坑,萌新关注。

  • 涉及到文件提交等操作,需要在 repo 设置里代开 action 的读写权限,否则会面临提价失败。即使你是 owner
  • setting-Actions-General-workflow permissions-打开 read and write permissions

lemonlite.yaml

这里使用的是黑名单机制,gfw 列表走代理,其余 DIRECT,只是对 spotify 和 telegram 单独分流。
没有涉及任何去广告和 script 操作,去广告交给了 AdgurandHome 和 adbyby.

lemon-usr.yaml

舍弃了lemonlite.yaml.使用了代理集和规则集的引用,只是使用了 extract-lemon-list.yml 生成的 lemonnode.yaml 代理集文件。舍弃了没有代理集时的其他繁琐的实现操作。

 上一篇: openwrt定时更新host文件的方案 

下一篇: 联系人信息跨设备即时同步的实现方案 

© 2024  by  Wangqifei