Skip to content

refactor: extract ALO scraper source module - #6

Merged
Rimus0cod merged 13 commits into
mainfrom
refactor/scraper-sources
Oct 5, 2026
Merged

Rimus0cod merged 13 commits into
mainfrom
refactor/scraper-sources

Conversation

@Rimus0cod

@Rimus0cod Rimus0cod commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Goal

Start decomposing app/services/async_scraper.py into source-specific modules without changing scraper behavior.

Changes

  • moved ScrapedListing to app/scraper/models.py
  • added app/scraper/sources/ package
  • extracted ALO list-page/card parsing to AloSourceParser
  • extracted ALO detail enrichment and ALO-specific extractors
  • delegated BaseScraper ALO behavior to the new source module
  • updated internal ScrapedListing imports to the new model module
  • kept generic and Imoti behavior in place for later source-specific PRs
  • added offline ALO regression tests for list parsing, dedup/filtering, and detail enrichment
  • added the ALO regression test to CI

Validation — CI run #36

  • Ruff: pass
  • Ruff format check: pass
  • ALO parser regression tests: pass
  • MyPy strict: pass
  • TypeScript check: pass
  • Vite production build: pass
  • Docker image build: pass

Refactor rule

This PR intentionally moves one source only. HTTP/retry/generic parsing behavior is unchanged so the migration remains small and reviewable.

Next source after merge: imoti.bg.

@Rimus0cod
Rimus0cod merged commit fd5a8f3 into main Oct 5, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant