summaryrefslogtreecommitdiffstats
path: root/lib/class/ampache_rss.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/class/ampache_rss.class.php')
-rw-r--r--lib/class/ampache_rss.class.php414
1 files changed, 207 insertions, 207 deletions
diff --git a/lib/class/ampache_rss.class.php b/lib/class/ampache_rss.class.php
index 3056e9cf..8006d8be 100644
--- a/lib/class/ampache_rss.class.php
+++ b/lib/class/ampache_rss.class.php
@@ -1,5 +1,5 @@
<?php
-/* vim:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab: */
+/* vim:set softtabstop=4 shiftwidth=4 expandtab: */
/**
*
* LICENSE: GNU General Public License, version 2 (GPLv2)
@@ -27,227 +27,227 @@
*/
class Ampache_RSS {
- private $type;
- public $data;
+ private $type;
+ public $data;
- /**
- * Constructor
- * This takes a flagged.id and then pulls in the information for said flag entry
- */
- public function __construct($type) {
+ /**
+ * Constructor
+ * This takes a flagged.id and then pulls in the information for said flag entry
+ */
+ public function __construct($type) {
- $this->type = self::validate_type($type);
+ $this->type = self::validate_type($type);
- } // constructor
+ } // constructor
- /**
- * get_xml
- * This returns the xmldocument for the current rss type, it calls a sub function that gathers the data
- * and then uses the xmlDATA class to build the document
- */
- public function get_xml() {
+ /**
+ * get_xml
+ * This returns the xmldocument for the current rss type, it calls a sub function that gathers the data
+ * and then uses the xmlDATA class to build the document
+ */
+ public function get_xml() {
- // Function call name
- $data_function = 'load_' . $this->type;
- $pub_date_function = 'pubdate_' . $this->type;
+ // Function call name
+ $data_function = 'load_' . $this->type;
+ $pub_date_function = 'pubdate_' . $this->type;
- $data = call_user_func(array('Ampache_RSS',$data_function));
- $pub_date = call_user_func(array('Ampache_RSS',$pub_date_function));
-
- XML_Data::set_type('rss');
- $xml_document = XML_Data::rss_feed($data,$this->get_title(),$this->get_description(),$pub_date);
-
- return $xml_document;
-
- } // get_xml
+ $data = call_user_func(array('Ampache_RSS',$data_function));
+ $pub_date = call_user_func(array('Ampache_RSS',$pub_date_function));
+
+ XML_Data::set_type('rss');
+ $xml_document = XML_Data::rss_feed($data,$this->get_title(),$this->get_description(),$pub_date);
+
+ return $xml_document;
+
+ } // get_xml
- /**
- * get_title
- * This returns the standardized title for the rss feed based on this->type
- */
- public function get_title() {
-
- $titles = array('now_playing' => T_('Now Playing'),
- 'recently_played' => T_('Recently Played'),
- 'latest_album' => T_('Newest Albums'),
- 'latest_artist' => T_('Newest Artists'));
+ /**
+ * get_title
+ * This returns the standardized title for the rss feed based on this->type
+ */
+ public function get_title() {
+
+ $titles = array('now_playing' => T_('Now Playing'),
+ 'recently_played' => T_('Recently Played'),
+ 'latest_album' => T_('Newest Albums'),
+ 'latest_artist' => T_('Newest Artists'));
- return scrub_out(Config::get('site_title')) . ' - ' . $titles[$this->type];
+ return scrub_out(Config::get('site_title')) . ' - ' . $titles[$this->type];
- } // get_title
+ } // get_title
- /**
- * get_description
- * This returns the standardized description for the rss feed based on this->type
- */
- public function get_description() {
+ /**
+ * get_description
+ * This returns the standardized description for the rss feed based on this->type
+ */
+ public function get_description() {
- //FIXME: For now don't do any kind of translating
- return 'Ampache RSS Feeds';
+ //FIXME: For now don't do any kind of translating
+ return 'Ampache RSS Feeds';
- } // get_description
+ } // get_description
- /**
- * validate_type
- * this returns a valid type for an rss feed, if the specified type is invalid it returns a default value
- */
- public static function validate_type($type) {
+ /**
+ * validate_type
+ * this returns a valid type for an rss feed, if the specified type is invalid it returns a default value
+ */
+ public static function validate_type($type) {
- $valid_types = array('now_playing','recently_played','latest_album','latest_artist','latest_song',
- 'popular_song','popular_album','popular_artist');
+ $valid_types = array('now_playing','recently_played','latest_album','latest_artist','latest_song',
+ 'popular_song','popular_album','popular_artist');
- if (!in_array($type,$valid_types)) {
- return 'now_playing';
- }
+ if (!in_array($type,$valid_types)) {
+ return 'now_playing';
+ }
- return $type;
-
- } // validate_type
-
- /**
- * get_display
- * This dumps out some html and an icon for the type of rss that we specify
- */
- public static function get_display($type='now_playing') {
-
- // Default to now playing
- $type = self::validate_type($type);
-
- $string = '<a href="' . Config::get('web_path') . '/rss.php?type=' . $type . '">' . UI::get_icon('feed', T_('RSS Feed')) . '</a>';
-
- return $string;
-
- } // get_display
-
- // type specific functions below, these are called semi-dynamically based on the current type //
-
- /**
- * load_now_playing
- * This loads in the now playing information. This is just the raw data with key=>value pairs that could be turned
- * into an xml document if we so wished
- */
- public static function load_now_playing() {
-
- $data = Stream::get_now_playing();
-
- $results = array();
- $format = Config::get('rss_format') ?: '%t - %a - %A';
- $string_map = array(
- '%t' => 'title',
- '%a' => 'artist',
- '%A' => 'album'
- );
- foreach ($data as $element) {
- $song = $element['media'];
- $client = $element['user'];
- $title = $format;
- $description = $format;
- foreach($string_map as $search => $replace) {
- $trep = 'f_' . $replace;
- $drep = 'f_' . $replace . '_full';
- $title = str_replace($search, $song->$trep, $title);
- $description = str_replace($search, $song->$drep, $description);
- }
- $xml_array = array(
- 'title' => $title,
- 'link' => $song->link,
- 'description' => $description,
- 'comments' => $client->fullname . ' - ' . $element['agent'],
- 'pubDate' => date('r', $element['expire'])
- );
- $results[] = $xml_array;
- } // end foreach
-
- return $results;
-
- } // load_now_playing
-
- /**
- * pubdate_now_playing
- * this is the pub date we should use for the now playing information,
- * this is a little specific as it uses the 'newest' expire we can find
- */
- public static function pubdate_now_playing() {
-
- // Little redundent, should be fixed by an improvement in the get_now_playing stuff
- $data = Stream::get_now_playing();
-
- $element = array_shift($data);
-
- return $element['expire'];
-
- } // pubdate_now_playing
-
- /**
- * load_recently_played
- * This loads in the recently played information and formats it up real nice like
- */
- public static function load_recently_played() {
-
- //FIXME: The time stuff should be centralized, it's currently in two places, lame
-
- $time_unit = array('', T_('seconds ago'), T_('minutes ago'), T_('hours ago'), T_('days ago'), T_('weeks ago'), T_('months ago'), T_('years ago'));
- $data = Song::get_recently_played();
-
- $results = array();
-
- foreach ($data as $item) {
- $client = new User($item['user']);
- $song = new Song($item['object_id']);
- $song->format();
- $amount = intval(time() - $item['date']+2);
- $time_place = '0';
- while ($amount >= 1) {
- $final = $amount;
- $time_place++;
- if ($time_place <= 2) {
- $amount = floor($amount/60);
- }
- if ($time_place == '3') {
- $amount = floor($amount/24);
- }
- if ($time_place == '4') {
- $amount = floor($amount/7);
- }
- if ($time_place == '5') {
- $amount = floor($amount/4);
- }
- if ($time_place == '6') {
- $amount = floor ($amount/12);
- }
- if ($time_place > '6') {
- $final = $amount . '+';
- break;
- }
- } // end while
-
- $time_string = $final . ' ' . $time_unit[$time_place];
-
- $xml_array = array('title'=>$song->f_title . ' - ' . $song->f_artist . ' - ' . $song->f_album,
- 'link'=>str_replace('&amp;', '&', $song->link),
- 'description'=>$song->title . ' - ' . $song->f_artist_full . ' - ' . $song->f_album_full . ' - ' . $time_string,
- 'comments'=>$client->username,
- 'pubDate'=>date("r",$item['date']));
- $results[] = $xml_array;
-
- } // end foreach
-
- return $results;
-
- } // load_recently_played
-
- /**
- * pubdate_recently_played
- * This just returns the 'newest' recently played entry
- */
- public static function pubdate_recently_played() {
-
- $data = Song::get_recently_played();
-
- $element = array_shift($data);
-
- return $element['date'];
-
- } // pubdate_recently_played
+ return $type;
+
+ } // validate_type
+
+ /**
+ * get_display
+ * This dumps out some html and an icon for the type of rss that we specify
+ */
+ public static function get_display($type='now_playing') {
+
+ // Default to now playing
+ $type = self::validate_type($type);
+
+ $string = '<a href="' . Config::get('web_path') . '/rss.php?type=' . $type . '">' . UI::get_icon('feed', T_('RSS Feed')) . '</a>';
+
+ return $string;
+
+ } // get_display
+
+ // type specific functions below, these are called semi-dynamically based on the current type //
+
+ /**
+ * load_now_playing
+ * This loads in the now playing information. This is just the raw data with key=>value pairs that could be turned
+ * into an xml document if we so wished
+ */
+ public static function load_now_playing() {
+
+ $data = Stream::get_now_playing();
+
+ $results = array();
+ $format = Config::get('rss_format') ?: '%t - %a - %A';
+ $string_map = array(
+ '%t' => 'title',
+ '%a' => 'artist',
+ '%A' => 'album'
+ );
+ foreach ($data as $element) {
+ $song = $element['media'];
+ $client = $element['user'];
+ $title = $format;
+ $description = $format;
+ foreach($string_map as $search => $replace) {
+ $trep = 'f_' . $replace;
+ $drep = 'f_' . $replace . '_full';
+ $title = str_replace($search, $song->$trep, $title);
+ $description = str_replace($search, $song->$drep, $description);
+ }
+ $xml_array = array(
+ 'title' => $title,
+ 'link' => $song->link,
+ 'description' => $description,
+ 'comments' => $client->fullname . ' - ' . $element['agent'],
+ 'pubDate' => date('r', $element['expire'])
+ );
+ $results[] = $xml_array;
+ } // end foreach
+
+ return $results;
+
+ } // load_now_playing
+
+ /**
+ * pubdate_now_playing
+ * this is the pub date we should use for the now playing information,
+ * this is a little specific as it uses the 'newest' expire we can find
+ */
+ public static function pubdate_now_playing() {
+
+ // Little redundent, should be fixed by an improvement in the get_now_playing stuff
+ $data = Stream::get_now_playing();
+
+ $element = array_shift($data);
+
+ return $element['expire'];
+
+ } // pubdate_now_playing
+
+ /**
+ * load_recently_played
+ * This loads in the recently played information and formats it up real nice like
+ */
+ public static function load_recently_played() {
+
+ //FIXME: The time stuff should be centralized, it's currently in two places, lame
+
+ $time_unit = array('', T_('seconds ago'), T_('minutes ago'), T_('hours ago'), T_('days ago'), T_('weeks ago'), T_('months ago'), T_('years ago'));
+ $data = Song::get_recently_played();
+
+ $results = array();
+
+ foreach ($data as $item) {
+ $client = new User($item['user']);
+ $song = new Song($item['object_id']);
+ $song->format();
+ $amount = intval(time() - $item['date']+2);
+ $time_place = '0';
+ while ($amount >= 1) {
+ $final = $amount;
+ $time_place++;
+ if ($time_place <= 2) {
+ $amount = floor($amount/60);
+ }
+ if ($time_place == '3') {
+ $amount = floor($amount/24);
+ }
+ if ($time_place == '4') {
+ $amount = floor($amount/7);
+ }
+ if ($time_place == '5') {
+ $amount = floor($amount/4);
+ }
+ if ($time_place == '6') {
+ $amount = floor ($amount/12);
+ }
+ if ($time_place > '6') {
+ $final = $amount . '+';
+ break;
+ }
+ } // end while
+
+ $time_string = $final . ' ' . $time_unit[$time_place];
+
+ $xml_array = array('title'=>$song->f_title . ' - ' . $song->f_artist . ' - ' . $song->f_album,
+ 'link'=>str_replace('&amp;', '&', $song->link),
+ 'description'=>$song->title . ' - ' . $song->f_artist_full . ' - ' . $song->f_album_full . ' - ' . $time_string,
+ 'comments'=>$client->username,
+ 'pubDate'=>date("r",$item['date']));
+ $results[] = $xml_array;
+
+ } // end foreach
+
+ return $results;
+
+ } // load_recently_played
+
+ /**
+ * pubdate_recently_played
+ * This just returns the 'newest' recently played entry
+ */
+ public static function pubdate_recently_played() {
+
+ $data = Song::get_recently_played();
+
+ $element = array_shift($data);
+
+ return $element['date'];
+
+ } // pubdate_recently_played
} // end Ampache_RSS class