Advanced Deal Alarm Notification for MyDealz.de
Have you ever wished for more Configuration Options on the MyDealz Deal Alarm?
Or did you receive the Deal Alarm too late?
This project, is exactly what you are looking for
Only E-Mail Notifications are currently supported
- Residential IP (Either run the script on a home device e.g. Raspberry Pi or configure a Residential Proxy in the Configuration File)
- Node.js installed
- Mailutils installed (or another local running SMTP Server)
git clone https://github.com/TalkLounge/mydealz-deal-alarm-advanced
cd mydealz-deal-alarm-advanced
npm install
- Copy
settings.conf.example
tosettings.conf
- Modify
settings.conf
based on your needs
Each time the script will be executed, it runs trough the newest deals, until it reaches a deal that has been already checked at the last execution
npm start
Linux
With Cronjobs
Runs every 5 Minutes Daily from 06:00 to 01:55 o'clock (Recommended)
crontab -e
*/5 6-23,0-1 * * * cd ~/mydealz-notification/ && npm start
Windows
With Task Scheduler
Get inspired by my personal settings.conf
TOML Format
The Configuration File settings.conf
uses the TOML format
Validate the TOML format every time the settings.conf
is modified: https://www.toml-lint.com
globalConfiguration1 = ""
globalConfiguration2 = true
# Comment
globalConfiguration3 = 32 # Comment
[[searchterm]]
titleContains = "XBOX"
price = 255
[[searchterm]]
titleContains = "PS5"
titleContainsNot = ["MediaMarkt", "Saturn"]
Key | Value (Type) | Beispiel | Beschreibung |
---|---|---|---|
apiCooldownMs | number | 500 | Cooldown zwischen MyDealz API Calls |
emailSender | string | "MyDealz Deal Notification [email protected]" | E-Mail Server von dem die Notification E-Mails gesendet werden |
emailReceiver | string | "[email protected]" | Empfänger der Notification E-Mails |
notifyOnError | boolean | true | Sende Notification E-Mail bei Fehler im Skript |
logNotification | boolean | true | Logge Notification E-Mails in die Konsole |
proxyUrl | string | "socks5://user:[email protected]:1234" | Residential Proxy (Socks / HTTPS / HTTP) |
Every new Searchterm must start with [[searchterm]]
Key | Value (Type) | Beispiel | Beschreibung |
---|---|---|---|
label | string | "Akkuschrauber wollte ich noch kaufen" | Kein Filter Kriterium, wird nur in der Benachrichtigungs E-Mail verwendet |
titleContains | string | "Bahn Gutschein" | Deal Titel muss "Bahn Gutschein" enthalten |
titleContains | string array | ["Bahn", "Gutschein"] | Deal Titel muss Bahn und Gutschein enthalten |
titleContainsNot | string | "Lokal" | Deal Titel darf nicht Lokal enthalten |
titleContainsNot | string array | ["Lokal", "München"] | Deal Titel darf nicht Lokal oder München enthalten |
titleRegex | string | '\b(1[0-4][0-9]|150)% cashback\b' | Deal Titel muss mit dem Regex matchen [Für fortgeschrittene Anwender] (Verwende ' statt ") |
titleRegex | string array | ['\b(1[0-4][0-9]|150)% cashback\b', '\d+'] | Deal Titel muss mit den Regex matchen [Für fortgeschrittene Anwender] (Verwende ' statt ") |
user | string | "Tedesco" | Deal muss von Nutzer Tedesco sein |
userNot | string | "Harrik_See" | Deal darf nicht von Nutzer Harrik_See sein |
userNot | string array | ["Harrik_See", "volljuristen", "bruno1096"] | Deal darf nicht von Nutzer Harrik_See, volljuristen oder bruno1096 sein |
price | number | 2654.05 | Deal muss 2654.05€ oder weniger kosten |
category | string | Elektronik | Deal muss in der Kategorie Elektronik sein |
category | string array | ["Elektronik", "Smart Home"] | Deal muss in der Kategorie Elektronik oder Smart Home sein |
temperature | number | 100 | Deal muss mindestens 100 Grad haben |
temperatureWithinMinutes | number | 60 | Deal muss die angegebenen Grad innerhalb von 60 Minuten erreichen |
This Project is inofficial, so it might break at any time. Use it on your own risk! Don't use it in production!
Scraping may be against the TOS
I'm not affiliated with MyDealz or the 6Minutes Media GmbH