Spaces:
Sleeping
Sleeping
Update login.js
Browse files
login.js
CHANGED
|
@@ -2,6 +2,9 @@ import { chromium } from 'playwright';
|
|
| 2 |
import fs from 'fs';
|
| 3 |
import path from 'path';
|
| 4 |
|
|
|
|
|
|
|
|
|
|
| 5 |
/**
|
| 6 |
* Launch Playwright, sign in to n8n if needed, refresh cookie,
|
| 7 |
* save a screenshot, return status object.
|
|
@@ -12,9 +15,9 @@ export async function runLogin() {
|
|
| 12 |
browser = await chromium.launch({ args: ['--no-sandbox'] });
|
| 13 |
|
| 14 |
/* ---------- reuse cookie ---------- */
|
| 15 |
-
const
|
| 16 |
-
const context
|
| 17 |
-
? await browser.newContext({ storageState:
|
| 18 |
: await browser.newContext();
|
| 19 |
|
| 20 |
await context.tracing.start({ screenshots: true, snapshots: true });
|
|
@@ -59,21 +62,15 @@ export async function runLogin() {
|
|
| 59 |
await overviewTab.waitFor({ state: 'visible', timeout: 60000 });
|
| 60 |
}
|
| 61 |
|
| 62 |
-
/*
|
| 63 |
-
await context.storageState({ path:
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
const file = path.join(dir, `overview-${ts}.png`);
|
| 69 |
-
await page.screenshot({ path: file, fullPage: true });
|
| 70 |
-
console.log('📸 Screenshot saved ->', file);
|
| 71 |
-
} catch (e) {
|
| 72 |
-
console.warn('⚠️ Could not save screenshot:', e.message);
|
| 73 |
-
}
|
| 74 |
|
| 75 |
-
|
| 76 |
-
return { ok: true
|
| 77 |
} catch (err) {
|
| 78 |
console.error('❌ runLogin error:', err);
|
| 79 |
return { ok: false, error: err.message };
|
|
|
|
| 2 |
import fs from 'fs';
|
| 3 |
import path from 'path';
|
| 4 |
|
| 5 |
+
const DIR = process.env.STATE_DIR || '/data';
|
| 6 |
+
const COOKIE_FILE = path.join(DIR, 'state.json');
|
| 7 |
+
const LOG_DIR = path.join(DIR, 'log');
|
| 8 |
/**
|
| 9 |
* Launch Playwright, sign in to n8n if needed, refresh cookie,
|
| 10 |
* save a screenshot, return status object.
|
|
|
|
| 15 |
browser = await chromium.launch({ args: ['--no-sandbox'] });
|
| 16 |
|
| 17 |
/* ---------- reuse cookie ---------- */
|
| 18 |
+
const hasCookie = fs.existsSync(COOKIE_FILE);
|
| 19 |
+
const context = hasCookie
|
| 20 |
+
? await browser.newContext({ storageState: COOKIE_FILE })
|
| 21 |
: await browser.newContext();
|
| 22 |
|
| 23 |
await context.tracing.start({ screenshots: true, snapshots: true });
|
|
|
|
| 62 |
await overviewTab.waitFor({ state: 'visible', timeout: 60000 });
|
| 63 |
}
|
| 64 |
|
| 65 |
+
/* save cookie */
|
| 66 |
+
await context.storageState({ path: COOKIE_FILE });
|
| 67 |
+
/* save screenshot */
|
| 68 |
+
fs.mkdirSync(LOG_DIR, { recursive: true });
|
| 69 |
+
const ts = new Date().toISOString().replace(/[:T]/g, '-').split('.')[0];
|
| 70 |
+
await page.screenshot({ path: path.join(LOG_DIR, `overview-${ts}.png`), fullPage: true });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
|
| 72 |
+
/* … */
|
| 73 |
+
return { ok: true };
|
| 74 |
} catch (err) {
|
| 75 |
console.error('❌ runLogin error:', err);
|
| 76 |
return { ok: false, error: err.message };
|