No description
Find a file
2025-09-25 14:27:33 +02:00
foodi fix: remove bearer 2025-09-25 14:27:33 +02:00
.gitignore Initial commit of the foodie application, including core functionality for fetching and emailing menu data, along with necessary configuration files and dependencies. 2025-07-09 14:13:31 +02:00
flake.lock Initial commit of the foodie application, including core functionality for fetching and emailing menu data, along with necessary configuration files and dependencies. 2025-07-09 14:13:31 +02:00
flake.nix Initial commit of the foodie application, including core functionality for fetching and emailing menu data, along with necessary configuration files and dependencies. 2025-07-09 14:13:31 +02:00
LICENSE Add LICENSE and README files 2025-07-14 00:31:04 +02:00
module.nix Remove unused unitConfig from systemd timer 2025-07-09 19:13:39 +02:00
package.nix Rename foodie to foodi throughout codebase 2025-07-09 19:01:12 +02:00
README.md Add LICENSE and README files 2025-07-14 00:31:04 +02:00
requirements.txt Initial commit of the foodie application, including core functionality for fetching and emailing menu data, along with necessary configuration files and dependencies. 2025-07-09 14:13:31 +02:00
setup.py Rename foodie to foodi throughout codebase 2025-07-09 19:01:12 +02:00

🥗 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 Foodis 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 days 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

  1. Clone the repository:

    git clone https://github.com/yourusername/foodi-menu-notifier.git
    cd foodi-menu-notifier
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Configure environment variables: Create a .env file 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
    
  4. 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.py to 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! 🍽️