Release notes
17 new scrapers, smarter image and yield handling, and a new supported Python range: Python 3.10 is dropped (3.11+ is now required) and Python 3.15 is now supported.
Heads up: image selection and yield parsing were improved, so a few existing scrapers now return different values (e.g. absolute image URLs, and 500 g is now 500 grams instead of 500 servings).
Shoutout to @jknndy for leading this release with 20+ contributions, and a warm welcome to our 8 new contributors!
What's Changed
- Drop support for Python 3.10 (EOL);
requires-pythonis now>= 3.11by @hhursev in b53381b5 - Add support for Python 3.15 (tested in CI on Linux, macOS and Windows) by @hhursev in 90929ffd
- Move contributor tooling to
uv(with a lockfile) and drop mypy by @hhursev in 90929ffd and 4c88a039 - Support
Dietobjects insuitableForDiet(sites like theguardian.com and giallozafferano.it now returndietary_restrictions) by @jknndy in #2034 - feat: best_image improvements (relative and protocol-relative image URLs are now resolved, favicons and logos are skipped,
twitter:imageis considered) by @jknndy in #2011 - Fix metric gram yields (
500 gis now500 grams, not500 servings) by @kocaemre in #2026 - Expand yield abbreviations (
kg,lb/lbs,oz,ml) and tests by @jknndy in #2047 - Add russianfood.com scraper by @amran1451 in #1942
- russianfood.com: add author and ingredient groups, fix image by @jknndy in #2055
- Adds support for relish.com by @jknndy in #2036
- Adds support for brewersfriend.com by @jknndy in #2037
- Adds support for essen-und-trinken.de by @jknndy in #2038
- Adds support for justapinch.com by @jknndy in #2039
- Adds support for cuisine.journaldesfemmes.fr by @jknndy in #2040
- Adds support for fresh.iprima.cz by @jknndy in #2041
- Adds support for delishkitchen.tv by @jknndy in #2042
- Adds support for tasteline.com by @jknndy in #2043
- Adds support for bakeitwithlove.com by @jknndy in #2044
- Adds support for marieclaire.fr by @jknndy in #2048
- Adds support for tudoreceitas.com by @jknndy in #2049
- Adds support for gourmandize.com by @jknndy in #2050
- Adds support for en.petitchef.com by @jknndy in #2051
- Adds support for simplyscratch.com by @jknndy in #2052
- Add support for theflavorbender.com by @AkshayRKapur0205 in #2066
- Adds support for budapestcookingclass.com by @jknndy in #2067
- Fix: aldi-sued.de - scrape amounts from HTML by @md1986 in #1988
- Fix: filter Arla placeholder instruction titles by @liujiayang2026 in #2046
- fix: WDR collect ingredients from all Zutaten sections by @checkerschaf in #2056
- fix: rename decorate_hosts to run_on_hosts in two plugins (no behavior change) by @dyp1109 in #2019
- fix: preserve multi-line SCRAPERS entries when generate.py reorders by @jknndy in #2035
- feat: parallel unittests in coverage by @jknndy in #1978
- Remove erroneous list item from docs by @boc-the-git in #2062
New Contributors
- @md1986 made their first contribution in #1988
- @kocaemre made their first contribution in #2026
- @liujiayang2026 made their first contribution in #2046
- @amran1451 made their first contribution in #1942
- @dyp1109 made their first contribution in #2019
- @checkerschaf made their first contribution in #2056
- @boc-the-git made their first contribution in #2062
- @AkshayRKapur0205 made their first contribution in #2066
Full Changelog: 15.12.0...15.13.0
It's also saved at /private/var/folders/rh/_p2rrl_j361ct701qz9vnprm0000gn/T/opencode/audit/notes.md.