From 1e75f9d3d558cb9dd91aab36a61cdc81f1c8dcb3 Mon Sep 17 00:00:00 2001 From: Joseph Date: Mon, 23 Nov 2020 18:49:25 +0000 Subject: [PATCH] [ReporterreBridge + KernelBugTrackerBridge + BastaBridge] Use defaultLinkTo() (#1862) --- bridges/BastaBridge.php | 12 +++++------- bridges/KernelBugTrackerBridge.php | 15 +++------------ bridges/ReporterreBridge.php | 8 +------- 3 files changed, 9 insertions(+), 26 deletions(-) diff --git a/bridges/BastaBridge.php b/bridges/BastaBridge.php index 613005fd..14ad3e53 100644 --- a/bridges/BastaBridge.php +++ b/bridges/BastaBridge.php @@ -19,13 +19,11 @@ class BastaBridge extends BridgeAbstract { $item['title'] = $element->find('title', 0)->innertext; $item['uri'] = $element->find('guid', 0)->plaintext; $item['timestamp'] = strtotime($element->find('dc:date', 0)->plaintext); - // Replaces all relative image URLs by absolute URLs. - // Relative URLs always start with 'local/'! - $item['content'] = preg_replace( - '/src=["\']{1}([^"\']+)/ims', - 'src=\'' . self::URI . '$1\'', - getSimpleHTMLDOM($item['uri'])->find('div.texte', 0)->innertext - ); + + $html = getSimpleHTMLDOM($item['uri']); + $html = defaultLinkTo($html, self::URI); + + $item['content'] = $html->find('div.texte', 0)->innertext; $this->items[] = $item; $limit++; } diff --git a/bridges/KernelBugTrackerBridge.php b/bridges/KernelBugTrackerBridge.php index d617b80f..81321966 100644 --- a/bridges/KernelBugTrackerBridge.php +++ b/bridges/KernelBugTrackerBridge.php @@ -61,6 +61,8 @@ class KernelBugTrackerBridge extends BridgeAbstract { if($html === false) returnServerError('Failed to load page!'); + $html = defaultLinkTo($html, self::URI); + // Store header information into private members $this->bugid = $html->find('#bugzilla-body', 0)->find('a', 0)->innertext; $this->bugdesc = $html->find('table.bugfields', 0)->find('tr', 0)->find('td', 0)->innertext; @@ -93,7 +95,7 @@ class KernelBugTrackerBridge extends BridgeAbstract { $item['content'] = str_replace("\n", '
', $item['content']); // Fix relative URIs - $item['content'] = $this->replaceRelativeURI($item['content']); + $item['content'] = $item['content']; $this->items[] = $item; } @@ -125,17 +127,6 @@ class KernelBugTrackerBridge extends BridgeAbstract { } } - /** - * Replaces all relative URIs with absolute ones - * - * @param string $content The source string - * @return string Returns the source string with all relative URIs replaced - * by absolute ones. - */ - private function replaceRelativeURI($content){ - return preg_replace('/href="(?!http)/', 'href="' . self::URI . '/', $content); - } - /** * Adds styles as attributes to tags with known classes * diff --git a/bridges/ReporterreBridge.php b/bridges/ReporterreBridge.php index 41f0f70f..6148be13 100644 --- a/bridges/ReporterreBridge.php +++ b/bridges/ReporterreBridge.php @@ -8,6 +8,7 @@ class ReporterreBridge extends BridgeAbstract { private function extractContent($url){ $html2 = getSimpleHTMLDOM($url); + $html2 = defaultLinkTo($html2, self::URI); foreach($html2->find('div[style=text-align:justify]') as $e) { $text = $e->outertext; @@ -16,13 +17,6 @@ class ReporterreBridge extends BridgeAbstract { $html2->clear(); unset($html2); - // Replace all relative urls with absolute ones - $text = preg_replace( - '/(href|src)(\=[\"\'])(?!http)([^"\']+)/ims', - '$1$2' . self::URI . '$3', - $text - ); - $text = strip_tags($text, '


'); return $text; }