feat(ci): switch Cloudflare bypass from FlareSolverr to Byparr
This commit is contained in:
1 parent
fabd160250
commit
25f4d74209
10 files changed
+138
-131
No files matched your search
@@ -1,5 +1,5 @@
|
||||
import { promises as fs } from "node:fs";
|
||||
import { getFlareSolverrCookies } from "@/lib/services/flare-solver";
|
||||
import { getByparrCookies } from "@/lib/services/byparr";
|
||||
import { parseNitroBundle } from "../../swf/nitro-builder";
|
||||
import { browserHeaders } from "./browser-headers";
|
||||
import { curlDownload } from "./curl-fetch";
|
||||
@@ -62,7 +62,7 @@ export async function downloadFile(
|
||||
const curlFallback = async (): Promise<boolean> => {
|
||||
let curlRes = await curlDownload(url, destPath);
|
||||
if (!curlRes.ok) {
|
||||
const cookieHeader = await getFlareSolverrCookies(url);
|
||||
const cookieHeader = await getByparrCookies(url);
|
||||
curlRes = await curlDownload(
|
||||
url,
|
||||
destPath,
|
||||
@@ -108,7 +108,7 @@ export async function downloadFile(
|
||||
res.status === 404 || res.status === 410 || res.status === 403;
|
||||
if (deterministic || attempt === maxRetries) {
|
||||
// HTTP 403 is often a TLS-fingerprint / Cloudflare challenge
|
||||
// block (e.g. Leet.city) — retry via curl, with FlareSolverr
|
||||
// block (e.g. Leet.city) — retry via curl, with Byparr
|
||||
// clearance cookies if the plain curl is also challenged.
|
||||
if (res.status === 403 && (await curlFallback())) {
|
||||
const stat = await fs.stat(destPath);
|
||||
@@ -148,7 +148,7 @@ export async function downloadFile(
|
||||
return { ok: true, size: buffer.length };
|
||||
} catch (err) {
|
||||
if (attempt === maxRetries || stage === "write") {
|
||||
// TLS fingerprint aborts land here too — try curl/FlareSolverr
|
||||
// TLS fingerprint aborts land here too — try curl/Byparr
|
||||
// before reporting the network failure.
|
||||
if (stage === "download" && (await curlFallback())) {
|
||||
const stat = await fs.stat(destPath);
|
||||
|
||||
Reference in new issue
Block a user