56 lines
2.6 KiB
PHP
56 lines
2.6 KiB
PHP
<?php
|
|
class EchoLederheckeBridge extends BridgeAbstract {
|
|
const NAME = 'Echo der Lederhecke';
|
|
const URI = 'https://www.sulzdorf-adl.de/unsere-gemeinde/gemeindeblatt';
|
|
const DESCRIPTION = 'Neue Ausgaben des Gemeindeblatts "Echo der Lederhecke" als RSS-Feed.';
|
|
const MAINTAINER = 'Akamaru';
|
|
const CACHE_TIMEOUT = 3600; // 1 Stunde Cache
|
|
|
|
public function collectData() {
|
|
$url = self::URI;
|
|
$html = getSimpleHTMLDOM($url);
|
|
if (!$html) {
|
|
throw new \Exception('Konnte die Webseite nicht laden: ' . $url);
|
|
}
|
|
|
|
// Suche alle Links zu PDFs im Hauptinhalt
|
|
foreach($html->find('a') as $element) {
|
|
$href = $element->href;
|
|
if (preg_match('/\\.pdf($|\\?)/i', $href)) {
|
|
$item = [];
|
|
$item['title'] = trim(strip_tags($element->innertext));
|
|
// Absolute URL bauen, falls nötig
|
|
if (strpos($href, 'http') !== 0) {
|
|
$item['uri'] = 'https://www.sulzdorf-adl.de' . $href;
|
|
} else {
|
|
$item['uri'] = $href;
|
|
}
|
|
$item['content'] = '<a href="' . $item['uri'] . '">PDF öffnen</a>';
|
|
$item['enclosures'] = [$item['uri']];
|
|
// Verbesserte Datumserkennung: Jahr und Quartal (Monatsbereich) extrahieren
|
|
$jahr = null;
|
|
$monat = null;
|
|
if (preg_match('/(\d{4})/', $item['title'], $jahrMatch)) {
|
|
$jahr = $jahrMatch[1];
|
|
}
|
|
if (preg_match('/(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)/u', $item['title'], $monatMatch)) {
|
|
$monat = $monatMatch[1];
|
|
}
|
|
// Quartalslogik: Wenn "Januar" oder "März" => 1.1., "April" oder "Juni" => 1.4., "Juli" oder "September" => 1.7., "Oktober" oder "Dezember" => 1.10.
|
|
$quartalStart = [
|
|
'Januar' => '01', 'Februar' => '01', 'März' => '01',
|
|
'April' => '04', 'Mai' => '04', 'Juni' => '04',
|
|
'Juli' => '07', 'August' => '07', 'September' => '07',
|
|
'Oktober' => '10', 'November' => '10', 'Dezember' => '10',
|
|
];
|
|
if ($jahr && $monat && isset($quartalStart[$monat])) {
|
|
$item['timestamp'] = strtotime($jahr . '-' . $quartalStart[$monat] . '-01');
|
|
} else {
|
|
$item['timestamp'] = time();
|
|
}
|
|
$item['author'] = 'Gemeinde Sulzdorf a.d.L.';
|
|
$this->items[] = $item;
|
|
}
|
|
}
|
|
}
|
|
}
|