RSSHub/lib
Clementina Lam Choi 20c832842f
feat(route): add EFE Noticias route (#22165)
* feat(route): add EFE Noticias route

Add route for EFE (Agencia EFE) Spanish news agency with 10 categories:
mundo, espana, economia, cultura, ciencia-y-tecnologia, deportes,
salud, medio-ambiente, educacion, euro-efe.

Features:
- Article images via enclosure and inline in description
- Ad filtering (auto-banner, srr-main, promotional logos)
- Clean img attributes for RSS reader compatibility
- Configurable item limit via query parameter

* fix(route/efe): address review comments

- Remove `limit` from `parameters` (query param, not path param)
- Scope article link selector to `.elementor-loop-container` to avoid anti-pattern #1
- Remove unnecessary `.first()` on `.elementor-widget-theme-post-content`
- Remove `.srr-main` from cleanup (not inside content area), keep `decoding`/`loading` on images

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: address review comments for EFE route

- Fix parameters to structured object with only path params
- Scope selector to .elementor-post article links only
- Remove unnecessary .first() on title
- Stop stripping image attributes (decoding, loading, width, etc.)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: revert overly specific selector that broke all routes

.elementor-post class doesn't exist on EFE site, use attribute
selector to pre-filter article URLs instead.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: fetch articles sequentially to avoid 429 rate limiting

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: suppress no-await-in-loop lint for sequential rate-limited fetches

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: use specific selector for article title links only

Select only .elementor-widget-theme-post-title a inside .e-loop-item
to avoid matching image links, category links, or duplicate entries.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: use single quotes for static string (oxlint stylistic/quotes)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: use Promise.all and remove Set (selector matches once per article)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* refactor: use Array.map instead of push for link collection

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(efe): use pMap to limit concurrency and avoid 429 rate limiting

---------

Co-authored-by: mlkgrnt <mlkgrnt@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-09 03:10:50 +00:00
..
api
assets
errors chore(deps-dev): bump eslint-plugin-unicorn from 64.0.0 to 65.0.0 (#22219) 2026-06-09 00:08:15 +08:00
middleware chore(deps-dev): bump eslint-plugin-unicorn from 64.0.0 to 65.0.0 (#22219) 2026-06-09 00:08:15 +08:00
routes feat(route): add EFE Noticias route (#22165) 2026-06-09 03:10:50 +00:00
routes-deprecated
shims chore(deps-dev): bump eslint-plugin-unicorn from 64.0.0 to 65.0.0 (#22219) 2026-06-09 00:08:15 +08:00
utils chore(deps-dev): bump eslint-plugin-unicorn from 64.0.0 to 65.0.0 (#22219) 2026-06-09 00:08:15 +08:00
views
app-bootstrap.test.tsx
app-bootstrap.tsx
app.test.ts
app.ts
app.worker.tsx refactor: migrate browser automation to Playwright (#21901) 2026-05-04 21:16:18 +08:00
bilibili-video-route.test.ts refactor: replace playwright with patchright (#21976) 2026-06-07 02:43:20 +08:00
config.remote-error.test.ts
config.test.ts feat: add HTTP cache (#21814) 2026-04-24 11:35:51 +08:00
config.ts chore(deps-dev): bump eslint-plugin-unicorn from 64.0.0 to 65.0.0 (#22219) 2026-06-09 00:08:15 +08:00
container.ts
entrypoints.test.ts
index.test.ts
index.ts feat: disable IPv6 (#21719) 2026-04-13 23:45:08 +08:00
obsidian-routes.test.ts fix: update obsidian community routes 2026-05-14 15:47:50 +08:00
pkg.test.ts
pkg.ts
registry.dynamic.test.ts
registry.test.ts style: auto format 2026-04-14 15:15:05 +00:00
registry.ts chore(deps-dev): bump eslint-plugin-unicorn from 64.0.0 to 65.0.0 (#22219) 2026-06-09 00:08:15 +08:00
route-paths.d.ts
router.js
routes.test.ts
server.ts
setup.test.ts style: auto format 2026-04-14 15:15:05 +00:00
techflowpost.test.ts test(route): move techflowpost test outside routes 2026-05-09 17:24:41 +08:00
types.ts refactor: migrate browser automation to Playwright (#21901) 2026-05-04 21:16:18 +08:00
worker.ts
worker.worker.test.ts