Abdessamad Derraz
2ce8db1754
feat: add native_id to scraper output
2026-03-29 13:15:57 +02:00
Abdessamad Derraz
8f1c7e47de
fix: emudeck scraper outputs cores field, base_scraper uses generate_platform_yaml
2026-03-27 12:27:51 +01:00
Abdessamad Derraz
08f68e792d
refactor: centralize hash logic, fix circular imports and perf bottlenecks
2026-03-18 11:51:12 +01:00
Abdessamad Derraz
3de4bf8190
refactor: extract _fetch_raw to BaseScraper (DRY)
...
Identical _fetch_raw() implementation (URL fetch + cache + error handling)
was duplicated in 4 scrapers. Moved to BaseScraper.__init__ with url param.
Each scraper now passes url to super().__init__() and inherits _fetch_raw().
Eliminates ~48 lines of duplicated code.
DRY audit now clean: resolve logic in common.py, scraper CLI in base_scraper,
_fetch_raw in BaseScraper. Remaining duplications are justified (different
list_platforms semantics, context-specific hash computation).
2026-03-18 08:22:21 +01:00
Abdessamad Derraz
2466fc4a97
refactor: extract scraper_cli() to base_scraper.py (DRY)
...
Shared CLI boilerplate for all scrapers: argparse, dry-run, json, yaml output.
4 scrapers (libretro, batocera, retrobat, emudeck) reduced from ~58 lines
main() each to 3 lines calling scraper_cli().
~220 lines of duplicated boilerplate eliminated.
recalbox + coreinfo keep custom main() (extra flags: --full, --compare-db).
2026-03-18 08:17:14 +01:00
Abdessamad Derraz
3453f89d9d
refactor: consolidate CI pipeline, remove third-party deps
2026-03-17 12:33:10 +01:00
Abdessamad Derraz
13c561888d
v2: automated BIOS platform with full pipeline
...
Reorganized 6 branches into bios/Manufacturer/Console/.
Scrapers for RetroArch, Batocera, Recalbox, and libretro core-info.
Platform-aware verification replicating native logic per platform.
Pack generation with dedup, alias resolution, variant support.
CI/CD: weekly auto-scrape, auto-release, PR validation.
Large files (>50MB) stored as GitHub Release assets, auto-fetched at build time.
2026-03-17 10:54:39 +01:00