From 9d41c83c02cc13a77dfbabb2f88bc828f0de8099 Mon Sep 17 00:00:00 2001 From: logmanoriginal Date: Tue, 2 Aug 2016 11:24:24 +0200 Subject: [PATCH 1/4] Remove nested function BastaExtractContent This fixes error "Using $this when not in object context" The nested function BastaExtractContent was attempting to access $this even though the function is declared as nested function within a class function and not as a class function itself. Thus BastaExtractContent had no access to the object instance $this. --- bridges/BastaBridge.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/bridges/BastaBridge.php b/bridges/BastaBridge.php index 01f7611b..ff2b26a8 100644 --- a/bridges/BastaBridge.php +++ b/bridges/BastaBridge.php @@ -7,19 +7,12 @@ class BastaBridge extends BridgeAbstract{ $this->name = "Bastamag Bridge"; $this->uri = "http://www.bastamag.net/"; $this->description = "Returns the newest articles."; - $this->update = "2014-05-25"; + $this->update = "2016-08-02"; } public function collectData(array $param){ - - - function BastaExtractContent($url) { - $html2 = $this->file_get_html($url); - $text = $html2->find('div.texte', 0)->innertext; - return $text; - } $html = $this->file_get_html('http://www.bastamag.net/spip.php?page=backend') or $this->returnError('Could not request Bastamag.', 404); $limit = 0; @@ -29,7 +22,7 @@ class BastaBridge extends BridgeAbstract{ $item->title = $element->find('title', 0)->innertext; $item->uri = $element->find('guid', 0)->plaintext; $item->timestamp = strtotime($element->find('pubDate', 0)->plaintext); - $item->content = BastaExtractContent($item->uri); + $item->content = $this->file_get_html($item->uri)->find('div.texte', 0)->innertext; $this->items[] = $item; $limit++; } From 371a52e2b94e5333758013dc4251b6fbc21900fc Mon Sep 17 00:00:00 2001 From: logmanoriginal Date: Tue, 2 Aug 2016 11:28:11 +0200 Subject: [PATCH 2/4] Fix indentation and remove unnecessary lines --- bridges/BastaBridge.php | 63 +++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/bridges/BastaBridge.php b/bridges/BastaBridge.php index ff2b26a8..53d1017e 100644 --- a/bridges/BastaBridge.php +++ b/bridges/BastaBridge.php @@ -1,45 +1,40 @@ maintainer = "qwertygc"; - $this->name = "Bastamag Bridge"; - $this->uri = "http://www.bastamag.net/"; - $this->description = "Returns the newest articles."; - $this->update = "2016-08-02"; - - } - - - public function collectData(array $param){ + public function loadMetadatas() { + $this->maintainer = "qwertygc"; + $this->name = "Bastamag Bridge"; + $this->uri = "http://www.bastamag.net/"; + $this->description = "Returns the newest articles."; + $this->update = "2016-08-02"; + } + + public function collectData(array $param){ $html = $this->file_get_html('http://www.bastamag.net/spip.php?page=backend') or $this->returnError('Could not request Bastamag.', 404); $limit = 0; foreach($html->find('item') as $element) { - if($limit < 10) { - $item = new \Item(); - $item->title = $element->find('title', 0)->innertext; - $item->uri = $element->find('guid', 0)->plaintext; - $item->timestamp = strtotime($element->find('pubDate', 0)->plaintext); - $item->content = $this->file_get_html($item->uri)->find('div.texte', 0)->innertext; - $this->items[] = $item; - $limit++; - } + if($limit < 10) { + $item = new \Item(); + $item->title = $element->find('title', 0)->innertext; + $item->uri = $element->find('guid', 0)->plaintext; + $item->timestamp = strtotime($element->find('pubDate', 0)->plaintext); + $item->content = $this->file_get_html($item->uri)->find('div.texte', 0)->innertext; + $this->items[] = $item; + $limit++; + } } - - } + } - public function getName(){ - return 'Bastamag Bridge'; - } + public function getName(){ + return 'Bastamag Bridge'; + } - public function getURI(){ - return 'http://bastamag.net/'; - } + public function getURI(){ + return 'http://bastamag.net/'; + } - public function getCacheDuration(){ - return 3600*2; // 2 hours - // return 0; // 2 hours - } + public function getCacheDuration(){ + return 3600*2; // 2 hours + } } +?> \ No newline at end of file From 5189741c7b01e26e8a38a95fdcf702afbf7ed52f Mon Sep 17 00:00:00 2001 From: logmanoriginal Date: Tue, 2 Aug 2016 11:31:17 +0200 Subject: [PATCH 3/4] Fix tag name for timestamp --- bridges/BastaBridge.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bridges/BastaBridge.php b/bridges/BastaBridge.php index 53d1017e..0dd0252f 100644 --- a/bridges/BastaBridge.php +++ b/bridges/BastaBridge.php @@ -17,7 +17,7 @@ class BastaBridge extends BridgeAbstract{ $item = new \Item(); $item->title = $element->find('title', 0)->innertext; $item->uri = $element->find('guid', 0)->plaintext; - $item->timestamp = strtotime($element->find('pubDate', 0)->plaintext); + $item->timestamp = strtotime($element->find('dc:date', 0)->plaintext); $item->content = $this->file_get_html($item->uri)->find('div.texte', 0)->innertext; $this->items[] = $item; $limit++; From 4a001f3594d3e94aa40d01b04545d83934d6f063 Mon Sep 17 00:00:00 2001 From: logmanoriginal Date: Tue, 2 Aug 2016 12:27:44 +0200 Subject: [PATCH 4/4] Replace relative image paths with absolute URL Images from their own servers are linked relatively via 'local/...' we must replace this for images to point to the correct destination. --- bridges/BastaBridge.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/bridges/BastaBridge.php b/bridges/BastaBridge.php index 0dd0252f..acdcd67b 100644 --- a/bridges/BastaBridge.php +++ b/bridges/BastaBridge.php @@ -9,18 +9,23 @@ class BastaBridge extends BridgeAbstract{ } public function collectData(array $param){ + // Replaces all relative image URLs by absolute URLs. Relative URLs always start with 'local/'! + function ReplaceImageUrl($content){ + return preg_replace('/src=["\']{1}([^"\']+)/ims', 'src=\'http://www.bastamag.net/$1\'', $content); + } + $html = $this->file_get_html('http://www.bastamag.net/spip.php?page=backend') or $this->returnError('Could not request Bastamag.', 404); $limit = 0; foreach($html->find('item') as $element) { if($limit < 10) { - $item = new \Item(); - $item->title = $element->find('title', 0)->innertext; - $item->uri = $element->find('guid', 0)->plaintext; - $item->timestamp = strtotime($element->find('dc:date', 0)->plaintext); - $item->content = $this->file_get_html($item->uri)->find('div.texte', 0)->innertext; - $this->items[] = $item; - $limit++; + $item = new \Item(); + $item->title = $element->find('title', 0)->innertext; + $item->uri = $element->find('guid', 0)->plaintext; + $item->timestamp = strtotime($element->find('dc:date', 0)->plaintext); + $item->content = ReplaceImageUrl($this->file_get_html($item->uri)->find('div.texte', 0)->innertext); + $this->items[] = $item; + $limit++; } } }