diff --git a/airtime_mvc/application/models/airtime/Podcast.php b/airtime_mvc/application/models/airtime/Podcast.php index 4b6b609fa..471edfc25 100644 --- a/airtime_mvc/application/models/airtime/Podcast.php +++ b/airtime_mvc/application/models/airtime/Podcast.php @@ -57,9 +57,26 @@ class Podcast extends BasePodcast // Kind of a pain; since the rss fields are SimpleXMLElements, // we need to explicitly cast them to strings - $podcastArray["title"] = (string)$rss->title; - $podcastArray["creator"] = (string)$rss->author; + $podcastArray["title"] = $rss->get_title(); + $podcastArray["description"] = $rss->get_description(); + $podcastArray["link"] = $rss->get_link(); + $podcastArray["language"] = $rss->get_language(); + $podcastArray["copyright"] = $rss->get_copyright(); + $podcastArray["author"] = $rss->get_author(); + $podcastArray["category"] = $rss->get_categories(); + + /*$podcastArray["title"] = (string)$rss->title; $podcastArray["description"] = (string)$rss->description; + $podcastArray["link"] = (string)$rss->link; + $podcastArray["language"] = (string)$rss->language; + $podcastArray["copyright"] = (string)$rss->copyright; + $podcastArray["itunes_author"] = (string)$rss->{'itunes:author'}; + $podcastArray["itunes_keywords"] = (string)$rss->{'itunes:keywords'}; + $podcastArray["itunes_subtitle"] = (string)$rss->{'itunes:subtitle'}; + $podcastArray["itunes_summary"] = (string)$rss->{'itunes:summary'}; + //TODO: fix itunes_category + $podcastArray["itunes_category"] = (string)$rss->{'itunes:category'}; + $podcastArray["itunes_explicit"] = (string)$rss->{'itunes:explicit'};*/ self::validatePodcastMetadata($podcastArray); try { diff --git a/airtime_mvc/application/services/PodcastService.php b/airtime_mvc/application/services/PodcastService.php index 6764b5c08..62eeb6885 100644 --- a/airtime_mvc/application/services/PodcastService.php +++ b/airtime_mvc/application/services/PodcastService.php @@ -51,7 +51,11 @@ class Application_Service_PodcastService extends Application_Service_ThirdPartyC public static function getPodcastFeed($podcastUrl) { try { - return Feed::loadRss($podcastUrl); + $feed = new SimplePie(); + $feed->set_feed_url($podcastUrl); + $feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/rss/cache_files'); + $feed->init(); + return $feed; } catch (FeedException $e) { return false; } @@ -61,7 +65,6 @@ class Application_Service_PodcastService extends Application_Service_ThirdPartyC { } - /** * Given an array of track identifiers, download RSS feed tracks * diff --git a/composer.json b/composer.json index a78a27b32..ab4370351 100644 --- a/composer.json +++ b/composer.json @@ -5,6 +5,6 @@ "raven/raven": "0.12.0", "ise/php-soundcloud": "3.0.1", "massivescale/celery-php": "2.0.*@dev", - "dg/rss-php": "1.2" + "simplepie/simplepie": "dev-master" } } diff --git a/composer.lock b/composer.lock index 1f6ebbb0f..5b61be35b 100644 --- a/composer.lock +++ b/composer.lock @@ -1,10 +1,10 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "26535a03b324113b05e6bd8bbc7f2bcb", + "hash": "8d8a51740ad37127ff6618f80861ccfc", "packages": [ { "name": "aws/aws-sdk-php", @@ -73,48 +73,6 @@ ], "time": "2014-12-08 21:56:46" }, - { - "name": "dg/rss-php", - "version": "v1.2", - "source": { - "type": "git", - "url": "https://github.com/dg/rss-php.git", - "reference": "b33661748d89d8c0c288e8d86feada6018d05031" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dg/rss-php/zipball/b33661748d89d8c0c288e8d86feada6018d05031", - "reference": "b33661748d89d8c0c288e8d86feada6018d05031", - "shasum": "" - }, - "require": { - "php": ">=5.2.2" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "http://davidgrudl.com" - } - ], - "description": "RSS & Atom Feeds for PHP is a very small and easy-to-use library for consuming an RSS and Atom feed", - "homepage": "https://github.com/dg/rss-php", - "keywords": [ - "atom", - "feed", - "rss" - ], - "time": "2015-07-02 11:54:05" - }, { "name": "guzzle/guzzle", "version": "v3.9.3", @@ -273,7 +231,7 @@ "shasum": "" }, "require": { - "predis/predis": ">=0.8.5", + "predis/predis": "0.8.5", "videlalvaro/php-amqplib": ">=2.4.0" }, "type": "library", @@ -567,6 +525,60 @@ ], "time": "2015-05-19 20:20:08" }, + { + "name": "simplepie/simplepie", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/simplepie/simplepie.git", + "reference": "6102a15d768c7d81fe48f7e2f1d8cf9e71e5959f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplepie/simplepie/zipball/6102a15d768c7d81fe48f7e2f1d8cf9e71e5959f", + "reference": "6102a15d768c7d81fe48f7e2f1d8cf9e71e5959f", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "SimplePie": "library" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ryan Parman", + "homepage": "http://ryanparman.com/", + "role": "Creator, alumnus developer" + }, + { + "name": "Geoffrey Sneddon", + "homepage": "http://gsnedders.com/", + "role": "Alumnus developer" + }, + { + "name": "Ryan McCue", + "email": "me@ryanmccue.info", + "homepage": "http://ryanmccue.info/", + "role": "Developer" + } + ], + "description": "A simple Atom/RSS parsing library for PHP", + "homepage": "http://simplepie.org/", + "keywords": [ + "atom", + "feeds", + "rss" + ], + "time": "2015-09-02 01:14:05" + }, { "name": "symfony/event-dispatcher", "version": "v2.7.4", @@ -627,16 +639,16 @@ }, { "name": "videlalvaro/php-amqplib", - "version": "v2.5.2", + "version": "v2.6.0", "source": { "type": "git", "url": "https://github.com/videlalvaro/php-amqplib.git", - "reference": "eb8f94d97c8e79900accf77343dbd7eca7f58506" + "reference": "8a6e89ad46130eb365b7f57d313f2a795f5e3269" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/videlalvaro/php-amqplib/zipball/eb8f94d97c8e79900accf77343dbd7eca7f58506", - "reference": "eb8f94d97c8e79900accf77343dbd7eca7f58506", + "url": "https://api.github.com/repos/videlalvaro/php-amqplib/zipball/8a6e89ad46130eb365b7f57d313f2a795f5e3269", + "reference": "8a6e89ad46130eb365b7f57d313f2a795f5e3269", "shasum": "" }, "require": { @@ -677,17 +689,17 @@ "queue", "rabbitmq" ], - "time": "2015-08-11 12:30:09" + "time": "2015-09-23 02:25:31" } ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", "stability-flags": { - "massivescale/celery-php": 20 + "massivescale/celery-php": 20, + "simplepie/simplepie": 20 }, "prefer-stable": false, - "prefer-lowest": false, "platform": [], "platform-dev": [] }