No description
| foodi | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| module.nix | ||
| package.nix | ||
| README.md | ||
| requirements.txt | ||
| setup.py | ||
🥗 Foodi Menu Notifier
Foodi Menu Notifier is a Python automation script that fetches the daily menu from Foodi (Compass Group) and sends a beautifully formatted HTML email to your inbox every weekday morning. No more guessing what's for lunch—get the menu delivered straight to you!
🚀 Features
- Automated Login: Securely authenticates with Foodi using Auth0, mimicking browser behavior for seamless access.
- Menu Fetching: Retrieves the latest menu for your point of sale (POS) using Foodi’s GraphQL API.
- Smart Categorization: Organizes menu items into categories (Entrées, Plats Chauds, Accompagnements, Fromages, Desserts).
- HTML Email: Sends a stylish, easy-to-read HTML email with the day’s menu.
- Environment-Based Configuration: All credentials and settings are managed via environment variables for security and flexibility.
- Weekend Detection: Automatically skips weekends—because you deserve a break!
🛠️ Setup
-
Clone the repository:
git clone https://github.com/yourusername/foodi-menu-notifier.git cd foodi-menu-notifier -
Install dependencies:
pip install -r requirements.txt -
Configure environment variables: Create a
.envfile in the project root with the following keys:FOODI_USER=your_foodi_username FOODI_PASSWORD=your_foodi_password EMAIL_SENDER=your_email_address EMAIL_PASSWORD=your_email_password EMAIL_RECIPIENT=recipient_email_address SMTP_SERVER=smtp.yourprovider.com SMTP_PORT=587 FIXED_SENDER_EMAIL=optional_fixed_sender_address -
Run the script:
python foodi/main.py
📬 Email Example
The email includes a table with categories and menu items, plus ingredients for each dish (where available):
| Category | Item & Ingredients |
|---|---|
| Plats Chauds | Poulet rôti Pommes de terre |
| Desserts | Tarte aux pommes |
| ... | ... |
⚠️ Notes
- The script only runs on weekdays.
- All sensitive credentials are loaded from environment variables—never hardcode them!
- Requires access to Foodi and a working SMTP server.
💡 Customization
- Change the POS ID or menu days in
main.pyto suit your location. - Tweak the HTML styling for your own flavor.
🧑💻 Contributing
Pull requests and suggestions are welcome! Please open an issue for bugs or feature requests.
📄 License
MIT License. See LICENSE for details.
Bon appétit! 🍽️