Skip to content

Instantly share code, notes, and snippets.

@ewgRa
Last active November 10, 2019 16:27
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ewgRa/1b515166a140bcf9ed9e to your computer and use it in GitHub Desktop.
Save ewgRa/1b515166a140bcf9ed9e to your computer and use it in GitHub Desktop.
<?php
# Usage
# php termin.php 2015-02-10 'notify-send "Have termin" "closest date %date%"'
$limitDate = $argv[1];
$command = $argv[2];
$link = 'http://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister%5B%5D=122210&dienstleister%5B%5D=122217&dienstleister%5B%5D=122219&dienstleister%5B%5D=122227&dienstleister%5B%5D=122231&dienstleister%5B%5D=122238&dienstleister%5B%5D=122243&dienstleister%5B%5D=122252&dienstleister%5B%5D=122260&dienstleister%5B%5D=122262&dienstleister%5B%5D=122254&dienstleister%5B%5D=122271&dienstleister%5B%5D=122273&dienstleister%5B%5D=122277&dienstleister%5B%5D=122280&dienstleister%5B%5D=122282&dienstleister%5B%5D=122284&dienstleister%5B%5D=122291&dienstleister%5B%5D=122285&dienstleister%5B%5D=122286&dienstleister%5B%5D=122296&dienstleister%5B%5D=150230&dienstleister%5B%5D=122301&dienstleister%5B%5D=122297&dienstleister%5B%5D=122294&dienstleister%5B%5D=122312&dienstleister%5B%5D=122314&dienstleister%5B%5D=122304&dienstleister%5B%5D=122311&dienstleister%5B%5D=122309&dienstleister%5B%5D=317869&dienstleister%5B%5D=324433&dienstleister%5B%5D=325341&dienstleister%5B%5D=324434&dienstleister%5B%5D=324435&dienstleister%5B%5D=122281&dienstleister%5B%5D=324414&dienstleister%5B%5D=122283&dienstleister%5B%5D=122279&dienstleister%5B%5D=122276&dienstleister%5B%5D=122274&dienstleister%5B%5D=122267&dienstleister%5B%5D=122246&dienstleister%5B%5D=122251&dienstleister%5B%5D=122257&dienstleister%5B%5D=122208&dienstleister%5B%5D=122226&anliegen%5B%5D=120686&herkunft=%2Fterminvereinbarung%2F';
while (1) {
$data = file_get_contents($link);
preg_match_all('@<td class="buchbar ">.*href="(?P<link>[^"]*)".*<span>\d+</span>.*</td>@', $data, $matches, PREG_SET_ORDER);
$res = array();
foreach ($matches as $match) {
preg_match('@datum=(?P<date>[-\d]+)@', $match['link'], $linkMatches);
if ($limitDate >= $linkMatches['date']) {
$res[$linkMatches['date']][] = $match['link'];
}
}
foreach ($res as $date => $links) {
echo 'DATE: ' . $date . PHP_EOL . str_repeat('=', 20) . PHP_EOL . PHP_EOL;
foreach ($links as $terminLink) {
$terminLink = 'http://service.berlin.de/terminvereinbarung/termin/' . html_entity_decode($terminLink);
echo $terminLink . PHP_EOL . PHP_EOL;
}
}
if ($res) {
$closest = reset($res);
reset($closest);
$cmd = str_replace(array('%date%', '%link%'), array(key($res), current($closest)), $command);
`$cmd`;
}
sleep(3);
echo str_repeat('=', 20) . PHP_EOL . PHP_EOL;
echo 'NEW' . PHP_EOL;
echo str_repeat('=', 20) . PHP_EOL . PHP_EOL;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment