diff --git a/airtime_mvc/application/modules/rest/controllers/PodcastController.php b/airtime_mvc/application/modules/rest/controllers/PodcastController.php index fd5f9a260..96b362c48 100644 --- a/airtime_mvc/application/modules/rest/controllers/PodcastController.php +++ b/airtime_mvc/application/modules/rest/controllers/PodcastController.php @@ -6,7 +6,7 @@ class Rest_PodcastController extends Zend_Rest_Controller { /** - * @var Application_Service_PodcastService + * @var Application_Service_PodcastEpisodeService */ protected $_service; diff --git a/airtime_mvc/application/services/PodcastService.php b/airtime_mvc/application/services/PodcastService.php index dc6a0ce03..5c1322768 100644 --- a/airtime_mvc/application/services/PodcastService.php +++ b/airtime_mvc/application/services/PodcastService.php @@ -194,15 +194,24 @@ class Application_Service_PodcastService * @return array */ private static function _generatePodcastArray($podcast, $rss) { - $podcastArray = $podcast->toArray(BasePeer::TYPE_FIELDNAME); + $ingestedEpisodes = PodcastEpisodesQuery::create() + ->findByDbPodcastId($podcast->getDbId()); + $episodeIds = array(); + foreach ($ingestedEpisodes as $e) { + array_push($episodeIds, $e->getDbEpisodeGuid()); + } + $podcastArray = $podcast->toArray(BasePeer::TYPE_FIELDNAME); $podcastArray["episodes"] = array(); foreach ($rss->get_items() as $item) { /** @var SimplePie_Item $item */ array_push($podcastArray["episodes"], array( "guid" => $item->get_id(), + "ingested" => in_array($item->get_id(), $episodeIds), "title" => $item->get_title(), - "author" => $item->get_author()->get_name(), + // From the RSS spec best practices: + // 'An item's author element provides the e-mail address of the person who wrote the item' + "author" => $item->get_author()->get_email(), "description" => $item->get_description(), "pub_date" => $item->get_date("Y-m-d H:i:s"), "link" => $item->get_link(),