Gesammelte und von mir selbst geschriebene Skripte
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
2.4KB

  1. #!/usr/bin/php
  2. <?php
  3. /**
  4. * Um die Werte für kommune und strasse zu erfahren, rufe https://www.egst.de/de/abfallabholung/ per
  5. * Browser auf und ermittle die gesendeten Daten in der Entwicklerkonsole deines Browsers.
  6. *
  7. * Die Angaben hier im Skript stehen für Hörstel als Kommune und Im Wiesengrund als Strasse
  8. *
  9. * Um die Daten an Telegram zu senden, musst du dir ein Skript/Programm schreiben, dass die API
  10. * von Telegram verwendet und Daten an dich oder deine Gruppe senden kann!
  11. *
  12. * Beispiel für eine Konfigurationsdatei:
  13. * tgReceiver: <hier die ID der Gruppe/ des Teilnhemers eintragen>
  14. * kommune: 2601
  15. * strasse: 2146
  16. * pathBot: '~/bin/YMBot'
  17. */
  18. $currentYear = date('Y');
  19. $dateRange = sprintf('%s0101-%s1231', $currentYear, $currentYear);
  20. $key = 'e21758b9c711463552fb9c70ac7d4273';
  21. $home = getenv('HOME');
  22. $configFilePath = sprintf('%s/.muell.yaml', $home);
  23. // Read the config file if existing
  24. if (!file_exists($configFilePath)) {
  25. echo "Bitte .muell.yaml im Homeverzeichnis anlegen!\n";
  26. return 1;
  27. }
  28. $config = yaml_parse_file($configFilePath);
  29. $url = sprintf('https://api.abfall.io/?key=%s&modus=d6c5855a62cf32a4dadbc2831f0f295f&waction=export_csv', $key);
  30. $ch = curl_init($url);
  31. $data = [
  32. 'f_id_kommune' => $config['kommune'],
  33. 'f_id_strasse' => $config['strasse'],
  34. 'f_id_abfalltyp_0' => 50,
  35. 'f_id_abfalltyp_1' => 161,
  36. 'f_id_abfalltyp_2' => 53,
  37. 'f_id_abfalltyp_3' => 187,
  38. 'f_abfallarten_index_max' => 5,
  39. 'f_abfallarten' => '50,161,53,187',
  40. 'f_zeitraum' => $dateRange,
  41. 'f_export_als' => json_encode([
  42. 'action' => $url,
  43. 'target' => '',
  44. ]),
  45. ];
  46. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  47. curl_setopt($ch, CURLOPT_POST, 1);
  48. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  49. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla 70');
  50. $response = curl_exec($ch);
  51. curl_close($ch);
  52. if ($response !== false) {
  53. $tomorrow = (new DateTime('tomorrow'))->format('d.m.Y');
  54. $trashArr = str_getcsv($response, "\n");
  55. foreach($trashArr as $row) {
  56. $rowArr = str_getcsv($row, ';');
  57. $index = array_search($tomorrow, $rowArr);
  58. if ($index !== false) {
  59. $what = '';
  60. switch ($index) {
  61. case 0:
  62. case 1:
  63. $what = "werden Biomüll und gelbe Tonne";
  64. break;
  65. case 2:
  66. $what = "wird Restmüll";
  67. break;
  68. case 3:
  69. $what = "wird Papier";
  70. break;
  71. }
  72. if ($what !== '') {
  73. shell_exec(sprintf("echo Morgen %s abgeholt | %s -u %d", $what, $config['pathBot'], $config['tgReceiver']));
  74. }
  75. }
  76. }
  77. }