1
0

Füge "Echo der Lederhecke" Bridge hinzu

This commit is contained in:
Akamaru
2025-06-27 16:34:38 +02:00
parent 8219a28337
commit 37d5d285bd

56
EchoLederheckeBridge.php Normal file
View File

@ -0,0 +1,56 @@
<?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;
}
}
}
}