plainoldrecipe
plainoldrecipe copied to clipboard
Takes a recipe website URL and transforms it to a plain-text version for reading or printing.
This program parses recipes from common websites and displays them using plain-old HTML.
You can use it here: https://www.plainoldrecipe.com/
Screenshots
Home Page:

View the recipe in your browser:

If you print the recipe, shows with minimal formatting:

Building Locally
- Install Python 3.6 or newer
git clone https://github.com/poundifdef/plainoldrecipe.gitor download the source and extractcd plainoldrecipe- Create a virtual environment (optional)
pip install -r requirements.txtpython app.py
If all goes well you should see something along the lines of:
python main.py
* Serving Flask app "main" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 123-456-789
* Running on http://localhost:8080/ (Press CTRL+C to quit)
After which simply navigate to the appropriate URL as displayed on the last line.
Deploy
flyctl deploy
Acknowledgements
- https://github.com/hhursev/recipe-scrapers
- https://evenbettermotherfucking.website/
Contributing
-
If you want to add a new scraper, your best bet is to contribute it to hhursev/recipe-scrapers. When they update their library, I get a notification and update to the latest version.
-
If you want to fix a bug in an existing scraper, again, your best bet is to do it in hhursev/recipe-scrapers
-
You can also add or modify scrapers here. These override code from hhursev/recipe-scrapers. If you want to do that, your PR should have exactly two files:
parsers/__init__.pyand add a new class in theparsers/directory. Here is an example. -
If you want to make any other modification or refactor: create an issue and ask prior to making your PR.
-
I don't guarantee that I will keep this repo up to date, or that I will respond in any sort of timely fashion! Your best bet for any change is to keep PRs small and focused on the minimum changeset possible.
Testing PRs Locally
git fetch origin pull/ID/head:BRANCHNAME