mirror of
https://github.com/FlareSolverr/FlareSolverr.git
synced 2025-12-06 01:28:37 +01:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
340638ca54 | ||
|
|
05abe69df6 | ||
|
|
e596906c19 |
2
.github/workflows/release-docker.yml
vendored
2
.github/workflows/release-docker.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
|||||||
tag-sha: false
|
tag-sha: false
|
||||||
-
|
-
|
||||||
name: Set up QEMU
|
name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1
|
uses: docker/setup-qemu-action@v1.0.1
|
||||||
-
|
-
|
||||||
name: Set up Docker Buildx
|
name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v1
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|||||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flaresolverr",
|
"name": "flaresolverr",
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flaresolverr",
|
"name": "flaresolverr",
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"description": "Proxy server to bypass Cloudflare protection.",
|
"description": "Proxy server to bypass Cloudflare protection.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node ./dist/index.js",
|
"start": "node ./dist/index.js",
|
||||||
|
|||||||
25
src/index.ts
25
src/index.ts
@@ -38,17 +38,25 @@ function validateEnvironmentVariables() {
|
|||||||
async function testChromeInstallation() {
|
async function testChromeInstallation() {
|
||||||
log.debug("Testing Chrome installation...")
|
log.debug("Testing Chrome installation...")
|
||||||
// create a temporary file for testing
|
// create a temporary file for testing
|
||||||
|
const fileContent = `flaresolverr_${version}`
|
||||||
const filePath = path.join(os.tmpdir(), 'flaresolverr.txt')
|
const filePath = path.join(os.tmpdir(), 'flaresolverr.txt')
|
||||||
fs.writeFileSync(filePath, 'flaresolverr');
|
const fileUrl = `file://${filePath}`
|
||||||
|
fs.writeFileSync(filePath, fileContent)
|
||||||
// launch the browser
|
// launch the browser
|
||||||
const url = `file://${filePath}`;
|
const sessionId = UUIDv1()
|
||||||
const session = await sessions.create(UUIDv1(), {
|
const session = await sessions.create(sessionId, {
|
||||||
userAgent: null,
|
userAgent: null,
|
||||||
oneTimeSession: true
|
oneTimeSession: true
|
||||||
})
|
})
|
||||||
const page = await session.browser.newPage()
|
const page = await session.browser.newPage()
|
||||||
await page.goto(url, { waitUntil: 'domcontentloaded' })
|
const response = await page.goto(fileUrl, { waitUntil: 'domcontentloaded' })
|
||||||
log.debug("Test successful.")
|
const responseBody = (await response.buffer()).toString().trim()
|
||||||
|
if (responseBody != fileContent) {
|
||||||
|
throw new Error("The response body does not match!")
|
||||||
|
}
|
||||||
|
await page.close()
|
||||||
|
await sessions.destroy(sessionId)
|
||||||
|
log.debug("Test successful")
|
||||||
}
|
}
|
||||||
|
|
||||||
function errorResponse(errorMsg: string, res: ServerResponse, startTimestamp: number) {
|
function errorResponse(errorMsg: string, res: ServerResponse, startTimestamp: number) {
|
||||||
@@ -111,7 +119,12 @@ function validateIncomingRequest(ctx: RequestContext, params: BaseAPICall) {
|
|||||||
log.info(`FlareSolverr ${version}`);
|
log.info(`FlareSolverr ${version}`);
|
||||||
log.debug('Debug log enabled');
|
log.debug('Debug log enabled');
|
||||||
validateEnvironmentVariables();
|
validateEnvironmentVariables();
|
||||||
testChromeInstallation().then(r =>
|
testChromeInstallation()
|
||||||
|
.catch(e => {
|
||||||
|
log.error("Error starting Chrome browser.", e);
|
||||||
|
process.exit(1);
|
||||||
|
})
|
||||||
|
.then(r =>
|
||||||
createServer((req: IncomingMessage, res: ServerResponse) => {
|
createServer((req: IncomingMessage, res: ServerResponse) => {
|
||||||
const startTimestamp = Date.now()
|
const startTimestamp = Date.now()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user