refactor(profile): replace puppeteerGet with getPuppeteerPage for improved request handling and remove unused utils file

This commit is contained in:
DIYgod 2025-08-27 17:13:18 +08:00
parent ab9c88b790
commit d889b60e2a
No known key found for this signature in database
2 changed files with 13 additions and 24 deletions

View File

@ -6,8 +6,7 @@ import ofetch from '@/utils/ofetch';
import { art } from '@/utils/render';
import path from 'node:path';
import { config } from '@/config';
import { puppeteerGet } from './utils';
import puppeteer from '@/utils/puppeteer';
import { getPuppeteerPage } from '@/utils/puppeteer';
import NotFoundError from '@/errors/types/not-found';
export const route: Route = {
@ -87,9 +86,18 @@ async function handler(ctx) {
});
} catch (error) {
if (error.status === 403) {
const browser = await puppeteer();
response = await puppeteerGet(profileUrl, browser);
await browser.close();
const { page, destory } = await getPuppeteerPage(profileUrl, {
onBeforeLoad: async (page) => {
const expectResourceTypes = new Set(['document', 'script', 'xhr', 'fetch']);
await page.setRequestInterception(true);
page.on('request', (request) => {
expectResourceTypes.has(request.resourceType()) ? request.continue() : request.abort();
});
},
});
await page.waitForSelector('.content');
response = await page.content();
await destory();
} else {
throw new NotFoundError(error.message);
}

View File

@ -1,19 +0,0 @@
const puppeteerGet = async (url, browser) => {
const page = await browser.newPage();
const expectResourceTypes = new Set(['document', 'script', 'xhr', 'fetch']);
await page.setRequestInterception(true);
page.on('request', (request) => {
expectResourceTypes.has(request.resourceType()) ? request.continue() : request.abort();
});
await page.goto(url, {
waitUntil: 'domcontentloaded',
});
await page.waitForSelector('.content');
const html = await page.content();
await page.close();
return html;
};
export { puppeteerGet };