From 9399ebb2c65b468a2e9c585a0c61a5034d4537f7 Mon Sep 17 00:00:00 2001 From: sysadminstory Date: Fri, 25 Jun 2021 22:12:33 +0200 Subject: [PATCH] [RadioMelodieBridge] Add timestamp support and content fix (#2105) --- bridges/RadioMelodieBridge.php | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/bridges/RadioMelodieBridge.php b/bridges/RadioMelodieBridge.php index 3df0d044..36179ecf 100644 --- a/bridges/RadioMelodieBridge.php +++ b/bridges/RadioMelodieBridge.php @@ -13,6 +13,12 @@ class RadioMelodieBridge extends BridgeAbstract { $html = getSimpleHTMLDOM(self::URI . '/actu/') or returnServerError('Could not request Radio Melodie.'); $list = $html->find('div[class=displayList]', 0)->children(); + + $dateFormat = '%A %e %B %Y à %H:%M'; + // Set locale and Timezone to parse the date + setlocale (LC_TIME, 'fr_FR.utf8'); + date_default_timezone_set('Europe/Paris'); + foreach($list as $element) { if($element->tag == 'a') { $articleURL = self::URI . $element->href; @@ -55,20 +61,43 @@ class RadioMelodieBridge extends BridgeAbstract { $author = $article->find('p[class=AuthorName]', 0)->plaintext; + // Handle date to timestamp + $dateHTML = $article->find('p[class=date]', 0)->plaintext; + preg_match('/\| ([^-]*)( - .*|)$/', $dateHTML, $matches); + $dateText = $matches[1]; + $dateArray = strptime($dateText, $dateFormat); + $timestamp = mktime( + $dateArray['tm_hour'], + $dateArray['tm_min'], + $dateArray['tm_sec'], + $dateArray['tm_mon'] + 1, + $dateArray['tm_mday'], + $dateArray['tm_year'] + 1900 + ); + $item['enclosures'] = array_merge($picture, $audio); $item['author'] = $author; $item['uri'] = $articleURL; $item['title'] = $article->find('meta[property=og:title]', 0)->content; - $date = $article->find('p[class*=date]', 0)->plaintext; + if($timestamp !== false) { + $item['timestamp'] = $timestamp; + } // Header Image $header = ''; // Remove the Date and Author part $textDOM->find('div[class=AuthorDate]', 0)->outertext = ''; + + // Remove Facebook javascript + $textDOM->find('script[src^=https://connect.facebook.net]', 0)->outertext = ''; + + // Rewrite relative Links + $textDOM = defaultLinkTo($textDOM, self::URI . '/'); + $article->save(); $text = $textDOM->innertext; - $item['content'] = '

' . $item['title'] . '

' . $date . '
' . $header . $text; + $item['content'] = '

' . $item['title'] . '

' . $dateHTML . '
' . $header . $text; $this->items[] = $item; } }