{"id":26360548,"url":"https://github.com/jordantete/toogoodnotify","last_synced_at":"2026-02-13T23:32:15.280Z","repository":{"id":263610298,"uuid":"701337530","full_name":"jordantete/TooGoodNotify","owner":"jordantete","description":"A serverless notification bot to spot TooGoodToGo magic bags before everyone else, ensuring you never miss a deal! 🚀","archived":false,"fork":false,"pushed_at":"2025-01-14T09:28:26.000Z","size":886,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T12:21:52.802Z","etag":null,"topics":["aws","python","serverless","telegram-bot","toogoodtogo"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jordantete.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-06T12:35:20.000Z","updated_at":"2025-02-20T13:57:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"5ba90fd6-2386-430e-8f79-a1a771275cfe","html_url":"https://github.com/jordantete/TooGoodNotify","commit_stats":null,"previous_names":["jordantete/toogoodnotify"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jordantete/TooGoodNotify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordantete%2FTooGoodNotify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordantete%2FTooGoodNotify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordantete%2FTooGoodNotify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordantete%2FTooGoodNotify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jordantete","download_url":"https://codeload.github.com/jordantete/TooGoodNotify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jordantete%2FTooGoodNotify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29423534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T22:20:51.549Z","status":"ssl_error","status_checked_at":"2026-02-13T22:20:49.838Z","response_time":78,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","python","serverless","telegram-bot","toogoodtogo"],"created_at":"2025-03-16T16:53:09.635Z","updated_at":"2026-02-13T23:32:15.262Z","avatar_url":"https://github.com/jordantete.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TooGoodNotify \n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/pownedjojo/TooGoodNotify/assets/2340374/f62f2f94-957d-4279-8c77-3214b687299b\" alt=\"MarineGEO circle logo\" style=\"height: 150px; width:150px;\"/\u003e\n\u003c/p\u003e\n\n\n## 📌 Overview\n\n**TooGoodNotify** is a customizable notification bot for TooGoodToGo (TGTG) deals, designed to monitor TGTG magic bags and notify users via Telegram. The bot is built with a modular architecture and is optimized for efficient event-driven operations, making it easy to deploy in a serverless environment on AWS Lambda or any other cloud provider (GCP, Azure, etc.). It is ready to be customized and adapted to fit your needs.\n\n## 🚀 Features\n\n- 🔄 **Automated Monitoring:** Tracks TGTG magic bags on a set schedule and sends timely notifications.\n- 💬 **Telegram Integration:** Allows users to interact with the bot through Telegram commands.\n- 🌍 **Multi-language Support:** Available in English and French.\n- ☁️ **Cloud Compatibility:** Optimized for AWS Lambda, but easily customizable for other cloud providers like GCP and Azure.\n- 🛠️ **Modular Architecture:** Easy to extend and adapt to new use cases.\n\n## 🧑‍💻 Setup Instructions\n\n### 🖥️ Prerequisites\n\n1. **Cloud Account (AWS, GCP, Azure, etc.)**\n    - **AWS**: This bot is primarily designed for AWS Lambda. You will need an AWS account to deploy the bot, but it can also be customized for other cloud platforms like GCP or Azure. If you are using AWS, you’ll need to configure your AWS credentials and region.\n    - **Other Cloud Providers**: If you're using GCP or Azure, you'll need to update the `serverless.yml` configuration to match the settings for your chosen provider (e.g., `gcp` or `azure`).\n\n2. **Telegram Bot Token \u0026 Chat ID**\n    - **Telegram Bot Token**: This bot requires a Telegram Bot Token to communicate with Telegram's API.\n    - **Chat ID**: The bot needs the `chat_id` of the user or group to send notifications.\n\n### 🚀 Installation\n\n1. **Clone the Repository**:\n  ```sh\n  git clone https://github.com/jordantete/TooGoodNotify.git\n  cd TooGoodNotify\n  ```\n\n2. **Set Up Conda Environment**:\n  ```sh\n  conda env create -f environment.yml\n  conda activate too_good_notify_env\n  ```\n\n3. **Configure Environment Variables in Conda**:\n\nTo set multiple environment variables at once, use a `.env` file. This is faster and keeps your configuration organized.\n\nAt the root of the project, create a `.env` file and add the necessary environment variables:\n\n  ```plaintext\n  # .env\n  USER_EMAIL=your_user_email@example.com\n  TELEGRAM_BOT_TOKEN=your_telegram_bot_token\n  TELEGRAM_CHAT_ID=your_telegram_chat_id\n  AWS_ACCOUNT_ID=your_aws_user_account_id\n  DEFAULT_AWS_REGION=your_aws_region\n  ```\n\n4. **Creating the Lambda Layer**:\n\nTo create the Lambda layer, use the following commands:\n\n  ```sh\n  cd lambda_layer\n  mkdir -p python\n  pip install \\\n      --platform manylinux2014_x86_64 \\\n      --target=python \\\n      --implementation cp \\\n      --python-version 3.10 \\\n      --only-binary=:all: \\\n      -r requirements_layer.txt\n  zip -r lambda_layer.zip python/\n  aws lambda publish-layer-version --layer-name TooGoodNotifyLayer --description \"Layer for dependencies\" --zip-file fileb://lambda_layer.zip --compatible-runtimes python3.10\n  ```\n\n### ☁️ Cloud Deployment\n\n#### AWS Setup\n- You must have an **AWS account** to deploy your bot. This bot uses AWS Lambda for serverless deployment, but it can be easily adapted to other cloud providers like GCP or Azure by updating the `serverless.yml` configuration file.\n\nTo deploy to AWS:\n\n1. **Configure the AWS CLI**\n    ```sh\n    aws configure\n    ```\n\n2. **Deploy with Serverless Framework**\n    - Install the Serverless framework if you haven’t already:\n      ```sh\n      npm install -g serverless\n      ```\n\n    - Deploy the bot to AWS Lambda using the Serverless framework:\n      ```sh\n      serverless deploy --stage dev\n      ```\n\n    **Customizing for GCP or Azure:** You can easily adapt this project for GCP or Azure by modifying the `serverless.yml` file. Serverless makes it easy to switch providers—just update the `provider` configuration.\n\n### 🛠️ Telegram Setup\n\nTo interact with the bot, you need to create a **Telegram Bot** and get its **bot_token** and your **chat_id**:\n\n1. **Create a Telegram Bot**\n    - Open the Telegram app and search for the **BotFather**.\n    - Start a chat with the BotFather and use the command `/newbot`.\n    - Follow the instructions to create your bot and get the **Bot Token**.\n\n2. **Get Your Chat ID**\n    - Send a message to your bot to start a conversation.\n    - Use the following URL to find your chat ID:\n      ```plaintext\n      https://api.telegram.org/bot\u003cYourBotToken\u003e/getUpdates\n      ```\n    - This will return a JSON response containing your chat ID.\n\n## 🤝 Contributing\n\nContributions are welcome! If you have ideas, improvements, or bug fixes, feel free to submit an issue or a pull request. Please ensure that your contributions follow the project’s coding standards and include clear descriptions for any changes.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE.txt) file for more details.\n\n## 👀 Feedback\n\nHave any questions or feedback? Feel free to reach out via the issues tab on GitHub. We’d love to hear from you!\n\n## ❗ Disclaimer\n\n**TooGoodNotify** is an independent project and is not affiliated with, endorsed by, or officially connected to TooGoodToGo (TGTG) or any of its subsidiaries or affiliates. All product names, logos, and brands are property of their respective owners.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjordantete%2Ftoogoodnotify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjordantete%2Ftoogoodnotify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjordantete%2Ftoogoodnotify/lists"}