summaryrefslogtreecommitdiff
path: root/bridges/NasaApodBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/NasaApodBridge.php')
-rw-r--r--bridges/NasaApodBridge.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/bridges/NasaApodBridge.php b/bridges/NasaApodBridge.php
new file mode 100644
index 0000000..8e293e0
--- /dev/null
+++ b/bridges/NasaApodBridge.php
@@ -0,0 +1,44 @@
+<?php
+class NasaApodBridge extends BridgeAbstract {
+
+ const MAINTAINER = 'corenting';
+ const NAME = 'NASA APOD Bridge';
+ const URI = 'https://apod.nasa.gov/apod/';
+ const CACHE_TIMEOUT = 43200; // 12h
+ const DESCRIPTION = 'Returns the 3 latest NASA APOD pictures and explanations';
+
+ public function collectData(){
+
+ $html = getSimpleHTMLDOM(self::URI . 'archivepix.html')
+ or returnServerError('Error while downloading the website content');
+
+ $list = explode('<br>', $html->find('b', 0)->innertext);
+
+ for($i = 0; $i < 3; $i++) {
+ $line = $list[$i];
+ $item = array();
+
+ $uri_page = $html->find('a', $i + 3)->href;
+ $uri = self::URI . $uri_page;
+ $item['uri'] = $uri;
+
+ $picture_html = getSimpleHTMLDOM($uri);
+ $picture_html_string = $picture_html->innertext;
+
+ //Extract image and explanation
+ $media = $picture_html->find('p', 1)->innertext;
+ $media = strstr($media, '<br>');
+ $media = preg_replace('/<br>/', '', $media, 1);
+ $explanation = $picture_html->find('p', 2)->innertext;
+
+ //Extract date from the picture page
+ $date = explode(' ', $picture_html->find('p', 1)->innertext);
+ $item['timestamp'] = strtotime($date[4] . $date[3] . $date[2]);
+
+ //Other informations
+ $item['content'] = $media . '<br />' . $explanation;
+ $item['title'] = $picture_html->find('b', 0)->innertext;
+ $this->items[] = $item;
+ }
+ }
+}