Node.js cli tool for monitoring your favorite TooGoodToGo businesses. Notifications are shown when the stock of any of the businesses changes. The following notification types are supported:
- Desktop notification
- Console output
- Telegram chat message
- Push message via Gotify
- Install Node.js 8.x or higher (Windows | Linux | OSx).
npm install -g toogoodtogo-watcher
toogoodtogo-watcher config
. Fill in your TooGoodToGo account details. Optionally enable / disable certain notifications. See Configuring Telegram notifiations for instructions on setting up the Telegram notifications.toogoodtogo-watcher watch
Usage: toogoodtogo-watcher <command>
Commands:
config Edit the config file.
config-reset Reset the config to the default values.
config-path Show the path of the config file.
watch Watch your favourite busininesses for changes.
Options:
--help Show help [boolean]
--version Show version number [boolean]
By default Windows doesn't display the notifications in the notification center. You can enable this by doing the following steps.
- Go to 'notifications & actions settings' (
Windows key
, type 'notifications',enter
) - Click on the 'toast' app at the bottom of the screen.
- Enable the 'show in action center' checkbox.
- Open a Telegram chat with
BotFather
. - Follow the instructions to create your own bot.
- Copy the token and enter it in the configuration via
toogoodtogo-watcher config
, and setenabled
totrue
. - Start the application
toogoodtogo-watcher watch
- Click the
t.me/BOTNAME
link from theBotFather
chat message. - Press
BEGIN
. - Your bot should greet you, and show a notification about your favorites. Note: the bot will show the favorites which you configured. Multiple people can connect to the bot to get updates about these favorites.
- Go to https://ifttt.com/create/.
- Click on
this
and select Webhooks. - Fill in an Event Name (e.g.
too_good_to_go_updated
). - Click on
that
. - Select anything you'd like to integrate with (e.g. Philips Hue).
- Finish setting it up. Note:
value1
contains a plain text message,value2
contains an HTML message. - Update the
ifttt
configuration viatoogoodtogo-watcher config
:- set
enabled
totrue
- set
webhookKey
to the token found at Web Hook settings (last part of the URL) - add the Event Name selected in step 3 to the
webhookEvents
array
- set
Note: You can add multiple events to webhookEvents
Note: the Docker image is a multiarch image. So it will also work on Raspberry Pi's.
- Create a directory to store the config file and copy the config.defaults.json into
YOUR_FOLDER/config.json
. See above for instructions on how to configure the application. Make sure that the folder has the correct permissions, e.g. run chmod -R o+rwx config/ or you might get access denied errors on the file system. The app needs read/write access on the configuration file, e.g. to store token received in it. - Run the following command. Example: a user
john
who stored the config in~/docker/toogoodtogo-watcher/config.json
:
docker run \
--name toogoodtogo-watcher \
-e TZ=Europe/Amsterdam \
-v /home/john/docker/toogoodtogo-watcher:/home/node/.config/toogoodtogo-watcher-nodejs \
marklagendijk/toogoodtogo-watcher
Note: When using Gotify as notification, make sure to put them on the same network in docker if hosted on the same docker host, e.g. docker network create gotify and use "--network=gotify" on both containers You can then use "http://gotify" on this container if --name gotify is used for the gotify container
- Create a directory to contain all your Docker Compose things.
- Create a directory
toogoodtogo-watcher
inside the created directory, and copy the config.defaults.json totoogoodtogo-watcher/config.json
. See above for instructions on how to configure the application. - Create a file
docker-compose.yaml
:
version: "3"
services:
toogoodtogo-watcher:
image: marklagendijk/toogoodtogo-watcher
restart: unless-stopped
environment:
- TZ=Europe/Amsterdam
volumes:
- ./toogoodtogo-watcher:/home/node/.config/toogoodtogo-watcher-nodejs
- Install the Heroku CLI and login.
- From your terminal, run
heroku config:set TOOGOODTOGO_CONFIG=content
, replacing content with the content of your config.json file.