feat: add GXNAS blog route#21982
Conversation
|
Successfully generated as following: http://localhost:1200/gxnas - Failed ❌ |
Auto Review
|
|
Successfully generated as following: http://localhost:1200/gxnas - Failed ❌ |
- Replace parseInt with Number.parseInt (unicorn/prefer-number-properties) - Simplify ternary pubDate assignment (no-unneeded-ternary) - Add features block with antiCrawler: true for wp.gxnas.com
|
Note: The CI route test failure is expected. The target site 注:CI 路由测试失败是预期行为。目标网站 |
…loudflare bypass - Remove external FlareSolverr dependency (requires separate Docker service) - Use RSSHub's built-in getPlaywrightPage() utility instead - Set requirePuppeteer: true in route features - Intercept requests to only load document resources (faster page load) - This aligns with other anti-crawler routes like javdb, sotwe, xueqiu Note: CI will still fail due to Cloudflare blocking GitHub Actions IPs, same as javdb (DIYgod#21269) and sotwe routes. Self-hosted instances with Chromium work fine.
改用 RSSHub 内置 Playwright 方案已将 FlareSolverr 外部依赖替换为 RSSHub 内置的 变更内容:
关于 CI 失败:
自建实例(含 Chromium)可正常使用。 |
|
Successfully generated as following: http://localhost:1200/gxnas - Failed ❌ |
|
Successfully generated as following: http://localhost:1200/gxnas - Failed ❌ |
|
Successfully generated as following: http://localhost:1200/gxnas - Failed ❌ |
|
Successfully generated as following: http://localhost:1200/gxnas - Failed ❌ |
…s for simple-import-sort
|
Successfully generated as following: http://localhost:1200/gxnas - Failed ❌ |
… Cloudflare JS challenge Playwright with request interception blocks Cloudflare challenge scripts, preventing the browser from passing the JS verification. FlareSolverr works because it lets the full challenge flow complete before returning the final HTML. Also fixed: simple-import-sort compliance (blank line between external/ internal groups, alphabetical order within groups).
| }); | ||
| sessionCreated = true; | ||
| logger.debug(`FlareSolverr session created: ${SESSION_ID}`); | ||
| } catch (e) { |
|
Successfully generated as following: http://localhost:1200/gxnas - Failed ❌ |
There was a problem hiding this comment.
Do not modify the docker compose file.
| import ofetch from '@/utils/ofetch'; | ||
| import { parseDate } from '@/utils/parse-date'; | ||
|
|
||
| const FLARESOLVERR_URL = process.env.FLARESOLVERR_URL || 'http://flaresolverr:8191/v1'; |
There was a problem hiding this comment.
Do not read process.env in your own route.
Involved Issue / 该 PR 相关 Issue
Close #
Example for the Proposed Route(s) / 路由地址示例
New RSS Route Checklist / 新 RSS 路由检查表
PuppeteerNote / 说明
Add RSS feed for GXNAS博客, a Chinese NAS technology blog covering Synology tutorials, soft routers, and AI topics.
The site uses Cloudflare protection which blocks the WordPress
/feed/endpoint, so this route scrapes the homepage HTML for article list instead. Full article content is not fetched because detail pages also return Cloudflare block pages from server-side requests.