rheinsiegkreis.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. echo -e "Version: 1.6.0p7\nAgentOS: linux\nHostname: rhein-sieg-kreis\n\n<<<local>>>"
  3. counter=0
  4. URL="https://www.rhein-sieg-kreis.de/verwaltung-politik/presse/index.php?sp%3AdateRange%5B0%5D=-7&sp%3AdateRange%5B1%5D=__last__&sp%3Afulltext%5B0%5D=Coronavirus%3A+Sachstand+im+Rhein-Sieg-Kreis&sp%3Aout=rss&sp%3Acmp=search-1-0-searchResult&action=submit"
  5. ## wir crawlen die presseinformationen von rhein-sieg-kreis.de und holen uns den letzten Eintrag
  6. latestCoronaNews=`curl --silent -L ${URL} | grep presseinformationen | grep link | sed 's/.*<link>//' | sed 's/<\/link>//' | head -n1`
  7. temp_file=$(mktemp)
  8. curl --silent -L ${latestCoronaNews} > ${temp_file}
  9. ## Der Quellcode ist der Webseite ist dermaßen Katastrophal, dass wir ihn aufarbeiten müssen
  10. ## wir parsen mit html2text und formatieren den Output davon ...
  11. html2text ${temp_file} | sed -e '/^$/d' -e '/^|$/d' | grep "\S" | while read line
  12. do
  13. ## mal schauen wie lange das funktiniert ... Tabellen einträge haben nur 3 Wörter (Gemeinde Namen)
  14. if [ "${isTable}" == "true" ] && [ `echo "${line}" | wc -w` -gt 3 ]
  15. then
  16. isTable="false"
  17. fi
  18. ## Tabellen (nach Behandlung mit html2text) fangen mit **Rhein-Sieg-Kreis\** an
  19. ## 2 in der Zahl, uns interessiert nur die Erste davon
  20. if [ "`echo "${line}" | grep "\*\*Rhein-Sieg-Kreis\*\*" > /dev/null 2>&1; echo $?`" == "0" ] && [ "${isTable}" != "false" ]
  21. then
  22. isTable="true"
  23. fi
  24. ## Recht billig aber effektiv, wir sind in einer Tabelle ...
  25. ## Leider beschäftigt der Rhein-Sieg-Kreis 1€ Entwickler, daher ist jedes HTML-Tabellenelement in einer Zeile untereinander ...
  26. if [ "${isTable}" == "true" ]
  27. then
  28. counter=$(( ${counter}+1 ))
  29. ## Aufarbeitung für Ausgabe
  30. line=`echo ${line} | sed 's/\*//g'`
  31. if [ ${counter} -eq 1 ]; then ORT=${line}; ORTs=`echo ${ORT} | sed 's/ /_/g'`; fi
  32. if [ ${counter} -eq 2 ]; then insgInfiziert=${line}; fi
  33. if [ ${counter} -eq 3 ]; then Todesfaelle=${line}; fi
  34. if [ ${counter} -eq 4 ]; then Genesen=${line}; fi
  35. if [ ${counter} -eq 5 ]
  36. then
  37. aktErkrankt=${line}
  38. counter=0
  39. ## Ausgabe für local-Checks von CheckMM
  40. echo "0 Corona_${ORTs} Erkrankt=${aktErkrankt}|Infiziert=${insgInfiziert}|Genesen=${Genesen}|Todesfaelle=${Todesfaelle} aktuelle Fälle: ${aktErkrankt} gemeldete Fälle: ${insgInfiziert} Genesene: ${Genesen} Todesfälle: ${Todesfaelle}"
  41. fi
  42. fi
  43. done