<?php
|
|
namespace Adafruit\FeedMangler;
|
|
|
|
use Adafruit\FeedMangler\Mangler;
|
|
|
|
class Atom {
|
|
|
|
public static function searchResults ($term) {
|
|
$search_data = Mangler::getSearchData($term);
|
|
|
|
$results = [];
|
|
if (array_key_exists('projects', $search_data))
|
|
if (is_array($search_data['projects']))
|
|
$results = $search_data['projects'];
|
|
|
|
$feed = new \FeedWriter\ATOM;
|
|
$feed->setTitle('Hackaday IO - ' . $term);
|
|
$feed->setLink(APPLICATION_URL);
|
|
|
|
$feed->setChannelElement('updated', date(\DATE_ATOM , time()));
|
|
$feed->setChannelElement('author', ['name' => 'Adafruit Industries Feed Mangler']);
|
|
$feed->setSelfLink(APPLICATION_URL);
|
|
|
|
foreach ($results as $result) {
|
|
// print_r($result);
|
|
$item = $feed->createNewItem();
|
|
$item->setAuthor('foo');
|
|
|
|
if (isset($result['url'])) {
|
|
$item->setLink($result['url']);
|
|
} else {
|
|
// skip because why don't you have a url argh
|
|
continue;
|
|
}
|
|
|
|
if (isset($result['updated']))
|
|
$item->setDate( date('r', $result['updated']) );
|
|
|
|
$content_html = '';
|
|
|
|
if (isset($result['summary']))
|
|
$content_html .= '<p><i>' . $result['summary'] . '</i></p>';
|
|
|
|
if (isset($result['description']))
|
|
$content_html .= '<p>' . nl2br($result['description']) . '</p>';
|
|
|
|
if (isset($result['skulls'])) {
|
|
$s = $result['skulls'];
|
|
if ($s > 100)
|
|
$content_html .= "<p>☠ x {$s}</p>";
|
|
elseif ($s > 0)
|
|
$content_html .= "<p>" . str_repeat('☠', $s);
|
|
}
|
|
|
|
if (strlen($content_html))
|
|
$item->setContent($content_html);
|
|
|
|
if (isset($result['name']))
|
|
$item->setTitle($result['name']);
|
|
|
|
$feed->addItem($item);
|
|
}
|
|
|
|
return $feed->generateFeed();
|
|
}
|
|
|
|
}
|