Rss-Bridge/bridges/NasaApodBridge.php

45 lines
1.4 KiB
PHP

<?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);
// Start at 1 to skip the "APOD Full Archive" on top of the page
for($i = 1; $i < 4; $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;
}
}
}