feat: 新增美团脚本
This commit is contained in:
@@ -1,4 +1,48 @@
|
||||
import { chromium } from 'playwright';
|
||||
import log from 'electron-log';
|
||||
|
||||
log.info('mt_trace.mjs placeholder: not implemented');
|
||||
process.exit(0);
|
||||
const getOrCreateTab = async (context, targetIndex) => {
|
||||
const idx =
|
||||
Number.isFinite(targetIndex) && targetIndex >= 0 ? Math.floor(targetIndex) : 1;
|
||||
|
||||
let pages = await context.pages();
|
||||
while (pages.length <= idx) {
|
||||
await context.newPage();
|
||||
pages = await context.pages();
|
||||
}
|
||||
const page = pages[idx];
|
||||
await page.bringToFront();
|
||||
return page;
|
||||
};
|
||||
|
||||
(async () => {
|
||||
const browser = await chromium.connectOverCDP('http://127.0.0.1:9222');
|
||||
|
||||
try {
|
||||
const context = browser.contexts()[0];
|
||||
if (!context) {
|
||||
throw new Error('No browser context available');
|
||||
}
|
||||
|
||||
await context.addInitScript(() => {
|
||||
Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
|
||||
});
|
||||
|
||||
const tabIndex = Number(process.env.TAB_INDEX);
|
||||
const page = await getOrCreateTab(context, tabIndex);
|
||||
await page.goto('https://me.meituan.com/ebooking/merchant/product#/index');
|
||||
} catch (error) {
|
||||
log.error(error);
|
||||
process.exitCode = 1;
|
||||
} finally {
|
||||
if (browser) {
|
||||
try {
|
||||
if (typeof browser.disconnect === 'function') {
|
||||
await browser.disconnect();
|
||||
} else {
|
||||
await browser.close();
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user