GitHub Proxy 更新 支持多层自我嵌套使用情况 支持脚本内容中使用git.io形式

今天在新开到的VC小鸡上面跑WSS一键脚本. 
bash <(curl -L https://github.com/crazypeace/v2ray_wss/raw/main/install.sh) vc2.tzzhu.gq 6
应该是因为小鸡的网络环境的原因, 访问Github资源出错. 安装并不顺利.


用 ghproxy 的页面, 处理了一下安装脚本

变成这个样子
bash <(curl -L https://ghproxy.crazypeace.workers.dev/https://github.com/crazypeace/v2ray_wss/raw/main/install.sh | perl -pe "$(curl -L https://ghproxy.crazypeace.workers.dev/perl-pe-para)") vc2.tzzhu.gq 6
再执行, 报错. 

curl: (7) Couldn't connect to server

用 bash -x 检查执行过程中到底是什么语句. 

发现以下问题

1. 原脚本最后一段调用了 git.io 脚本去开WARP, 如: 
bash <(curl -fsSL git.io/warp.sh) 4
经过预处理后, 还是没有把 ghproxy 添加上去, 仍然是原样的形式.

2. 出现了这样子的多层自我嵌套调用的情况
curl -L https://ghproxy.crazypeace.workers.dev/https://ghproxy.crazypeace.workers.dev/perl-pe-para

对问题分别进行处理

1. 多层自我嵌套调用
更新worker.js
path = urlObj.href.substr(urlObj.origin.length + PREFIX.length)

// 判断有没有嵌套自己调用自己
const exp0 = 'https:/' + urlObj.host + '/'
while (path.startsWith(exp0)) {
    path = path.replace(exp0, '')
}

// cfworker 会把路径中的 `//` 合并成 `/`
path = path.replace(/^https?:\/+/, 'https://')
2. 脚本内容中使用git.io形式
增加了一个查找替换, 如果是 git.io 的裸调用, 前面加上https://
后续的添加ghproxy部分, 原来是判断 github, 改为判断 git
} else if (path==='perl-pe-para') {
        let reponseText = 's#(curl.*?\\.sh)([^/])#\\1 | perl -pe "\\$(curl -L ' + urlObj.origin + '/perl-pe-para)" \\2#g; s# (git)# https://\\1#g; s#(http.*?git[^/]*?/)#' + urlObj.origin + '/\\1#g';

更新

演示页面已更新:

评论

The Hot3 in Last 30 Days

无服务器 自建短链服务 Url-Shorten-Worker 完整的部署教程

ClouDNS .asia免费域名 托管到CloudFlare开CDN白嫖Websocket WS通道翻墙 / desec.io