From 93cd079912be9b64283af5c30a87868f0a37fa0b Mon Sep 17 00:00:00 2001 From: Akamaru Date: Thu, 1 Jan 2026 20:32:01 +0100 Subject: [PATCH] Neu: Warner Bros. Discovery Deutschland Bridge --- README.md | 8 +++ WarnerBrosDiscoveryBridge.php | 119 ++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 WarnerBrosDiscoveryBridge.php diff --git a/README.md b/README.md index 272f09a..524c24a 100644 --- a/README.md +++ b/README.md @@ -345,6 +345,14 @@ Diese Sammlung enthält verschiedene Bridge-Implementierungen für RSS-Bridge, u - Links führen zur offiziellen Streaming-Seite (wenn verfügbar) - Autor wird auf den Streaming-Dienst gesetzt (z.B. "Prime Video") +### [Warner Bros. Discovery Deutschland Bridge](https://bridge.ponywave.de/#bridge-WarnerBrosDiscoveryBridge) (Von Akamaru) +- **Beschreibung**: Pressemitteilungen von Warner Bros. Discovery Deutschland +- **Hinweise**: + - Zeigt bis zu 15 aktuelle Pressemitteilungen + - Enthält Titel, Datum, Beschreibung und Bilder + - Datum wird im deutschen Format (DD/MM/YYYY) extrahiert + - Autor ist auf "Warner Bros. Discovery Deutschland" gesetzt + ### [Weibo Pics Bridge](https://bridge.ponywave.de/#bridge-WeiboPicsBridge) (Von Akamaru, Brawl, Gemini 2.5 Pro) - **Beschreibung**: Zeigt die neuesten Bilder eines Weibo-Nutzers diff --git a/WarnerBrosDiscoveryBridge.php b/WarnerBrosDiscoveryBridge.php new file mode 100644 index 0000000..967e47d --- /dev/null +++ b/WarnerBrosDiscoveryBridge.php @@ -0,0 +1,119 @@ +find('div.base-list-item') as $element) { + if (count($this->items) >= 15) { + break; + } + + // Extract title and URI + $titleElement = $element->find('h2 a', 0); + if (!$titleElement) { + continue; + } + + $item_title = trim(strip_tags($titleElement->innertext)); + $item_uri = $titleElement->href; + + // Convert relative URL to absolute + if (strpos($item_uri, 'http') !== 0) { + $item_uri = self::URI . $item_uri; + } + + // Extract date (format: DD/MM/YYYY) + $dateElement = $element->find('span.padding-right-10.text-muted', 0); + $item_date = ''; + $item_timestamp = null; + if ($dateElement) { + $dateText = trim(strip_tags($dateElement->innertext)); + // Remove "- Letzte Aktualisierung ..." if present + $dateText = preg_replace('/\s*-\s*Letzte Aktualisierung.*/', '', $dateText); + $dateText = trim($dateText); + + // Convert DD/MM/YYYY to timestamp + $dateParts = explode('/', $dateText); + if (count($dateParts) === 3) { + // Convert to MM/DD/YYYY for strtotime + $item_timestamp = strtotime($dateParts[1] . '/' . $dateParts[0] . '/' . $dateParts[2]); + $item_date = $dateText; + } + } + + // Extract description + $item_description = ''; + $descElement = $element->find('p.truncate-text', 0); + if ($descElement) { + $item_description = trim(strip_tags($descElement->innertext)); + } + + // Extract media (image or video) + $item_image = ''; + + $mediaSection = $element->find('div.media-section', 0); + if ($mediaSection) { + // Check for image + $imageElement = $mediaSection->find('img', 0); + if ($imageElement && isset($imageElement->src)) { + $item_image = $imageElement->src; + } + } + + // Build content HTML + $content = ''; + + // Add image if available + if (!$item_video && $item_image) { + $content .= '' . htmlspecialchars($item_title) . '

'; + } + + // Add description + if ($item_description) { + $content .= '

' . htmlspecialchars($item_description) . '

'; + } + + // Create item + if (!empty($item_title)) { + $item = array(); + $item['uri'] = $item_uri; + $item['title'] = $item_title; + $item['content'] = $content; + $item['author'] = 'Warner Bros. Discovery Deutschland'; + + if ($item_timestamp) { + $item['timestamp'] = $item_timestamp; + } + + // Set enclosures for image + if ($item_image) { + $item['enclosures'] = array($item_image); + } + + // Create unique ID + $item['uid'] = $item_title . ' - ' . $item_date; + + $this->items[] = $item; + } + } + } +}