Skip to content

Instantly share code, notes, and snippets.

@Staubgeborener
Last active October 11, 2021 09:25
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Staubgeborener/be07bb19bcc22849439220115a8193c9 to your computer and use it in GitHub Desktop.
Save Staubgeborener/be07bb19bcc22849439220115a8193c9 to your computer and use it in GitHub Desktop.
Rechtzeitig über Preisfehler auf mydealz.de benachrichtigt werden
#!/bin/bash
#Praktisches Skript für alle mydealerz. Am besten diese Codezeilen mit crontab -e jede Minute ausführen lassen (siehe: https://www.linuxwiki.de/crontab)
#Die folgenden Zeilen prüfen dann jede Minute (oder von mir aus Sekunde) ob es einen neuen Preisfehler-Deal gibt und schickt dann eine Telegram-Nachricht mit dem Link raus
#So ist es nun möglich tatsächlich auch _rechtzeitig_ über Preisfehler informiert zu werden und nicht erst ~10 Minuten später (beim ersten ausführen wird eine Preisfehler-Nachricht verschickt da eine Referenz fehlt, sit aber völlig normal)
TOKEN=<TOKEN> #https://core.telegram.org/bots/api#authorizing-your-bot
CHAT_ID=<CHAT_ID> #https://stackoverflow.com/a/32572159
touch .tmp_file_lastknowndeal
sleep 1
#wellp, thats a long pipe
new_deal=$(wget -qO- https://www.mydealz.de/gruppe/preisfehler -O - | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" | awk '!seen[$0]++' | grep 'mydealz.de/deals/' | head -1)
sleep 1
counter=0
#anti-spam-statement
while read p; do
if [ "$p" == "$new_deal" ]; then ((counter++)); fi
done <.tmp_file_lastknowndeal
if [ $counter -eq 0 ]; then
echo $new_deal >> .tmp_file_lastknowndeal
#new deal! telegram action in 3...2...1...
#https://core.telegram.org/bots/api
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$new_deal"
#eventuell hier Anzahl der Zeilen prüfen, tmp loeschen und neue tmp erstellen (letzte Zeile übernehmen)
fi
@rabe0577
Copy link

Danke für dein Script und die Inspiration!
Ich habe das Script mal ein wenig modifiziert und vorallem die Deals nach neuste zu erst sortieren lassen.
Zusätzlich habe ich es noch so geschrieben, dass jeder Deal nur einmal gesendet wird.

rabe0577/mydealz-deal-message

@Staubgeborener
Copy link
Author

@rabe0577
Ich habe derzeit auch eine zweite Version seit einer Woche im Testlauf - genau aus dem Grund, dass sobald Deals gelöscht (oder als Spam markiert wurden) sofort das Script durch den davorgehenden Deal getriggert wird. Sieht im Endeffekt genauso aus wie bei dir mit einer For-Schleife. Danke für das forken und weiterentwickeln!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment