refactor(profile): replace puppeteerGet with getPuppeteerPage for improved request handling and remove unused utils file
This commit is contained in:
parent
ab9c88b790
commit
d889b60e2a
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 };
|
||||
Loading…
Reference in New Issue