* refactor: use patchwright
* refactor: migrate setRequestInterception and waitUntil
* fix: overwrite ua
* refactor: drop puppeteer cookie/requestfinished shims
Migrate page.cookies/setCookie and browser.cookies/setCookie call sites to the native context APIs (page.context().cookies/addCookies), rewrite requestfinished handlers to await request.response() instead of consuming the synchronous puppeteer-shaped payload, and remove the now-redundant browser.close context-cleanup wrapper. Playwright already handles all of these natively; the shims existed only for the puppeteer -> playwright migration.
* refactor: remove page.authenticate, page.setUserAgent, browser.newPage(), browser.userAgent() shims
update cookie utility tests
* refactor: replace browser instance with context in Playwright usage across multiple routes
- Updated all instances of `browser` to `context` in Playwright-related functions for consistency and improved resource management.
- Ensured proper closure of context after operations to prevent memory leaks.
- Adjusted request interception methods to utilize the new context variable.
* fix: direct type import
* refactor: remove Puppeteer compatibility layers and unify page handling with Playwright
* fix: test case
* chore: bump patchright to v1.60.0
* chore: pin patchright to 1.59.1
nft can't resolve browser.json due to https://github.com/microsoft/playwright/pull/40093
* chore: pin to node 24.15 for playwright
browser install on node 24.16 stucks due to https://github.com/microsoft/playwright/issues/40724
* fix: update patchright and patchright-core to version 1.60.2 and adjust minify-docker.js for compatibility
* fix: import BrowserContext from patchright
* ci(docker-release): enable ZRAM to reduce memory pressure
This should hopefully help reduce stuck build jobs. Note that this can't
completely eliminate stuck builds since this is usually caused by
synchronization issues in QEMU.
Signed-off-by: Rongrong <i@rong.moe>
* build(Dockerfile): Add support for puppeteer-real-browser
Sets CHROMIUM_EXECUTABLE_PATH on AMD64 and installs essential
dependencies.
Signed-off-by: Rongrong <i@rong.moe>
* fix(route/picnob): bring back support for diygod/rsshub:chromium-bundled
The support for puppeteer-real-browser on diygod/rsshub:chromium-bundled
was improperly implemented in 400fb1fa49 ("fix(route/picnob): use
puppeteer-real-browser to pass cf check (#20478)") and was then removed
in 2cb11d7c7e ("fix(route/picnob): support img not in slide").
With proper support for puppeteer-real-browser added to Dockerfile, this
patch brings back the support for diygod/rsshub:chromium-bundled.
This partially reverts commit 2cb11d7c7e ("fix(route/picnob): support
img not in slide").
Signed-off-by: Rongrong <i@rong.moe>
* chore(route/picnob): add myself as maintainer
This route explicitly consult CHROMIUM_EXECUTABLE_PATH from the docker
image variant `diygod/rsshub:chromium-bundled`. Since I am the author of
the image variant, add myself as one of route maintainers so that I am
mentioned when the route is broken.
Signed-off-by: Rongrong <i@rong.moe>
# Conflicts:
# lib/routes/picnob/user.ts
---------
Signed-off-by: Rongrong <i@rong.moe>
* chore(deps): update @bbob packages to version 4.3.1 and clean up patches
* fix: ensure Docker logs command does not fail the workflow
* fix: simplify Dockerfile cleanup step by removing entire lib directory
* feat: use rebrowser
* fix: remove rebrowser-puppeteer-core
* fix: chrome not found
* fix: replace remove-infobar with disable-blink-features
remove-infobar was removed since M76 https://github.com/puppeteer/puppeteer/issues/1765
* feat: remove outdated stealth plugin
* fix: remove puppeteer non stealth test
* test: add critical routes test
* fix: youtube channels config
* test: add full routes test
* test: output full routes test result
* test: build routes before test
* test: use one reporter
* test: fix cache test errors
* test: fix cache test errors
* chore: puppeteerrc.cjs
* chore: puppeteerrc.cjs
* chore: puppeteerrc.cjs
* fix: build script
* chore: puppeteerrc rename
* test: route test names
* chore: pass test result to docs
* refactor: replace re2 with re2-wasm
* refactor: remove migrated routes
* ci: remove foresight
https://github.com/runforesight
Foresight is no longer in service
* fix: add back removed wasm
chore: bump base OS image