Spaces:
Runtime error
Runtime error
fix(playwright): only create adblocker if flag is true
Browse files
src/lib/server/websearch/scrape/playwright.ts
CHANGED
|
@@ -11,16 +11,19 @@ import { env } from "$env/dynamic/private";
|
|
| 11 |
import { logger } from "$lib/server/logger";
|
| 12 |
import { onExit } from "$lib/server/exitHandler";
|
| 13 |
|
| 14 |
-
const blocker =
|
| 15 |
-
.
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
let browserSingleton: Promise<Browser> | undefined;
|
| 26 |
async function getBrowser() {
|
|
@@ -65,7 +68,7 @@ export async function withPage<T>(
|
|
| 65 |
|
| 66 |
try {
|
| 67 |
const page = await ctx.newPage();
|
| 68 |
-
|
| 69 |
|
| 70 |
const res = await page.goto(url, { waitUntil: "load", timeout: 3500 }).catch(() => {
|
| 71 |
console.warn(`Failed to load page within 2s: ${url}`);
|
|
|
|
| 11 |
import { logger } from "$lib/server/logger";
|
| 12 |
import { onExit } from "$lib/server/exitHandler";
|
| 13 |
|
| 14 |
+
const blocker =
|
| 15 |
+
env.PLAYWRIGHT_ADBLOCKER === "true"
|
| 16 |
+
? await PlaywrightBlocker.fromPrebuiltAdsAndTracking(fetch)
|
| 17 |
+
.then((blker) => {
|
| 18 |
+
const mostBlocked = blker.blockFonts().blockMedias().blockFrames().blockImages();
|
| 19 |
+
if (env.WEBSEARCH_JAVASCRIPT === "false") return mostBlocked.blockScripts();
|
| 20 |
+
return mostBlocked;
|
| 21 |
+
})
|
| 22 |
+
.catch((err) => {
|
| 23 |
+
logger.error(err, "Failed to initialize PlaywrightBlocker from prebuilt lists");
|
| 24 |
+
return PlaywrightBlocker.empty();
|
| 25 |
+
})
|
| 26 |
+
: PlaywrightBlocker.empty();
|
| 27 |
|
| 28 |
let browserSingleton: Promise<Browser> | undefined;
|
| 29 |
async function getBrowser() {
|
|
|
|
| 68 |
|
| 69 |
try {
|
| 70 |
const page = await ctx.newPage();
|
| 71 |
+
env.PLAYWRIGHT_ADBLOCKER === "true" && (await blocker.enableBlockingInPage(page));
|
| 72 |
|
| 73 |
const res = await page.goto(url, { waitUntil: "load", timeout: 3500 }).catch(() => {
|
| 74 |
console.warn(`Failed to load page within 2s: ${url}`);
|