Skip to content

v0.1.1

Choose a tag to compare

@jehrr jehrr released this 07 Sep 11:19
· 22 commits to main since this release
bcc717f

Six P0 correctness fixes (#4), verified against actual code before fixing, each pinned by a smoke_test.py regression:

  • solve_recaptcha() was crashing — callers passed api_version=/min_score= it no longer accepted, and its body called a function (_solve_with_2captcha) that didn't exist. Restored dispatch to _solve_with_2captcha_v1/_v2.
  • Thousands-separator bug: $1,234 parsed as 1.234. Fixed in product_parser._prices_in — a single separator with exactly 3 trailing digits is now read as a thousands grouping (none of the four supported currencies use 3-digit decimal subunits).
  • Currency corruption: the DOM discount-overlay was overwriting a correct JSON-LD priceCurrency with a $→USD guess, silently turning AUD/CAD/SGD/HKD/NZD rows into USD.
  • Exit code 3 (blocked) was unreachable from any browser engine — a challenge page parsed to 0 products and exited 4, indistinguishable from a genuinely empty category. Shared detect_bot_challenge across all four engines.
  • Hardcoded Chrome/124.0.0.0 UA in all three browser engines, now built from each browser's own real launched version at runtime.
  • Playwright pagination bug: raw get_attribute("href") concatenated by hand instead of urljoin, breaking on absolute-path hrefs.

Also: a new engine-smoke CI job installs playwright+pyppeteer so the previously-always-skipped engine-specific checks actually run in CI.

See README.md for usage, and CONTRIBUTING.md for the properties tests pin.