Füge "Echo der Lederhecke" Bridge hinzu
This commit is contained in:
56
EchoLederheckeBridge.php
Normal file
56
EchoLederheckeBridge.php
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user