Compare commits

...

3 Commits

Author SHA1 Message Date
ngosang
340638ca54 Bump version 1.2.5 2021-04-05 05:27:37 +02:00
ngosang
05abe69df6 Fix memory regression, close test browser 2021-04-05 05:26:45 +02:00
ngosang
e596906c19 Fix release-docker GitHub action 2021-04-04 22:46:48 +02:00
4 changed files with 22 additions and 9 deletions

View File

@@ -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
View File

@@ -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": {

View File

@@ -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",

View File

@@ -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()