fix(proxy): 更换代理服务为 allorigins.win 并更新处理逻辑

更新代理配置从自定义代理服务改为使用 allorigins.win 服务,并相应修改代理请求处理逻辑。当代理请求失败时,自动回退到直接请求方式。同时移除了未使用的 Google AdSense 脚本。
This commit is contained in:
2025-10-08 17:37:25 +08:00
parent 54a3ee6e9d
commit ebf6833e70
3 changed files with 40 additions and 18 deletions

View File

@@ -281,15 +281,38 @@ async function handleGenericProxy(request: Request, env: any) {
// 如果配置了代理IP则通过代理发送请求 // 如果配置了代理IP则通过代理发送请求
if (env.PROXY_IP) { if (env.PROXY_IP) {
const proxyUrl = `https://${env.PROXY_IP}/${url.toString()}` // 使用 allorigins.win 代理服务
const newReq = new Request(proxyUrl, { const proxyUrl = `https://${env.PROXY_IP}?get=${encodeURIComponent(url.toString())}`
method: request.method, const proxyReq = new Request(proxyUrl, {
headers, method: 'GET', // allorigins.win 只支持 GET 请求
body: request.body, headers: {
'User-Agent': env.USER_AGENT || 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0'
}
}) })
const response = await fetch(newReq)
return corsResponse(response) try {
const proxyResponse = await fetch(proxyReq)
if (!proxyResponse.ok) {
throw new Error(`Proxy returned ${proxyResponse.status}`)
}
const proxyData = await proxyResponse.json()
if (proxyData.contents) {
// 解析代理返回的内容
const pixivData = JSON.parse(proxyData.contents)
return corsResponse(new Response(JSON.stringify(pixivData), {
headers: { 'Content-Type': 'application/json' }
}))
} else { } else {
throw new Error('No contents in proxy response')
}
} catch (error) {
console.error('Proxy request failed:', error)
// 如果代理失败,回退到直接请求
}
}
// 直接请求或代理失败时的回退
const newReq = new Request(url.toString(), { const newReq = new Request(url.toString(), {
method: request.method, method: request.method,
headers, headers,
@@ -298,7 +321,6 @@ async function handleGenericProxy(request: Request, env: any) {
const response = await fetch(newReq) const response = await fetch(newReq)
return corsResponse(response) return corsResponse(response)
} }
}
// 图片代理处理器 // 图片代理处理器
async function handleImageProxy(request: Request, env: any) { async function handleImageProxy(request: Request, env: any) {

View File

@@ -27,11 +27,11 @@
content="%VITE_GOOGLE_SEARCH_CONSOLE_VERIFICATION%" content="%VITE_GOOGLE_SEARCH_CONSOLE_VERIFICATION%"
/> />
<!-- Google AdSense --> <!-- Google AdSense -->
<script <!-- <script
async async
src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=%VITE_ADSENSE_PUB_ID%" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=%VITE_ADSENSE_PUB_ID%"
crossorigin="anonymous" crossorigin="anonymous"
></script> ></script> -->
<!-- jQuery --> <!-- jQuery -->
<!-- <script src="https://unpkg.com/jquery@3.7.1/dist/jquery.js"></script> --> <!-- <script src="https://unpkg.com/jquery@3.7.1/dist/jquery.js"></script> -->
</head> </head>

View File

@@ -12,7 +12,7 @@ bucket = "./dist"
# User-Agent 黑名单JSON 数组格式) # User-Agent 黑名单JSON 数组格式)
# 代理IP配置可选用于绕过Pixiv WAF # 代理IP配置可选用于绕过Pixiv WAF
PROXY_IP = "ProxyIP.US.CMLiussss.net" PROXY_IP = "api.allorigins.win/get?url="
# 自定义图片代理 URL可选默认使用 Pixiv 原始 URL # 自定义图片代理 URL可选默认使用 Pixiv 原始 URL
# 示例配置: # 示例配置:
# VITE_PXIMG_BASEURL_I = "https://i.pixiv.re/" # VITE_PXIMG_BASEURL_I = "https://i.pixiv.re/"