diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2009-11-23 14:54:19 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2009-11-23 14:54:19 +0000 |
commit | ef21e122d1c55d03ce346e58d907b98313fcecfa (patch) | |
tree | 1b49ece07b39ec41faa07ab33ccc5b1de7fba4d1 /server/xml.server.php | |
parent | fe4585bdfeaa133959f3d61249368c27d60df442 (diff) | |
download | ampache-ef21e122d1c55d03ce346e58d907b98313fcecfa.tar.gz ampache-ef21e122d1c55d03ce346e58d907b98313fcecfa.tar.bz2 ampache-ef21e122d1c55d03ce346e58d907b98313fcecfa.zip |
Finish moving stuff out of doc into class, still needs more work to deal with Version as well as variable response (JSON)
Diffstat (limited to 'server/xml.server.php')
-rw-r--r-- | server/xml.server.php | 247 |
1 files changed, 3 insertions, 244 deletions
diff --git a/server/xml.server.php b/server/xml.server.php index b9eae5a5..81153a69 100644 --- a/server/xml.server.php +++ b/server/xml.server.php @@ -89,247 +89,6 @@ foreach ($methods as $method) { } // end foreach methods in API -switch ($_REQUEST['action']) { - case 'album_songs': - $album = new Album($_REQUEST['filter']); - $songs = $album->get_songs(); - - // Set the offset - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - ob_end_clean(); - echo xmlData::songs($songs); - break; - case 'tags': - Browse::reset_filters(); - Browse::set_type('tag'); - Browse::set_sort('name','ASC'); - - $method = $_REQUEST['exact'] ? 'exact_match' : 'alpha_match'; - Api::set_filter($method,$_REQUEST['filter']); - $tags = Browse::get_objects(); - - // Set the offset - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - ob_end_clean(); - echo xmlData::tags($tags); - break; - case 'tag': - $uid = scrub_in($_REQUEST['filter']); - ob_end_clean(); - echo xmlData::tags(array($uid)); - break; - case 'tag_artists': - $artists = Tag::get_tag_objects('artist',$_REQUEST['filter']); - - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - ob_end_clean(); - echo xmlData::artists($artists); - break; - case 'tag_albums': - $albums = Tag::get_tag_objects('album',$_REQUEST['filter']); - - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - ob_end_clean(); - echo xmlData::albums($albums); - break; - case 'tag_songs': - $songs = Tag::get_tag_objects('song',$_REQUEST['filter']); - - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - ob_end_clean(); - echo xmlData::songs($songs); - break; - case 'songs': - Browse::reset_filters(); - Browse::set_type('song'); - Browse::set_sort('title','ASC'); - - $method = $_REQUEST['exact'] ? 'exact_match' : 'alpha_match'; - Api::set_filter($method,$_REQUEST['filter']); - Api::set_filter('add',$_REQUEST['add']); - Api::set_filter('update',$_REQUEST['update']); - - $songs = Browse::get_objects(); - - // Set the offset - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - ob_end_clean(); - echo xmlData::songs($songs); - break; - case 'song': - $uid = scrub_in($_REQUEST['filter']); - - ob_end_clean(); - echo xmlData::songs(array($uid)); - break; - case 'url_to_song': - // Don't scrub in we need to give her raw and juicy to the function - $url = $_REQUEST['url']; - - $song_id = Song::parse_song_url($url); - - ob_end_clean(); - echo xmlData::songs(array($song_id)); - break; - case 'playlists': - Browse::reset_filters(); - Browse::set_type('playlist'); - Browse::set_sort('name','ASC'); - - $method = $_REQUEST['exact'] ? 'exact_match' : 'alpha_match'; - Api::set_filter($method,$_REQUEST['filter']); - - $playlist_ids = Browse::get_objects(); - - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - ob_end_clean(); - echo xmlData::playlists($playlist_ids); - break; - case 'playlist': - $uid = scrub_in($_REQUEST['filter']); - - ob_end_clean(); - echo xmlData::playlists(array($uid)); - break; - case 'playlist_songs': - $playlist = new Playlist($_REQUEST['filter']); - $items = $playlist->get_items(); - - foreach ($items as $object) { - if ($object['type'] == 'song') { - $songs[] = $object['object_id']; - } - } // end foreach - - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - ob_end_clean(); - echo xmlData::songs($songs); - break; - case 'search_songs': - $array['s_all'] = $_REQUEST['filter']; - ob_end_clean(); - - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - //WARNING!!! This is a horrible hack that has to be here because - //Run search references these variables, ooh the huge manatee - unset($_REQUEST['limit'],$_REQUEST['offset']); - - $results = run_search($array); - - echo xmlData::songs($results); - break; - case 'videos': - Browse::reset_filters(); - Browse::set_type('video'); - Browse::set_sort('title','ASC'); - - $method = $_REQUEST['exact'] ? 'exact_match' : 'alpha_match'; - Api::set_filter($method,$_REQUEST['filter']); - - $video_ids = Browse::get_objects(); - - xmlData::set_offset($_REQUEST['offset']); - xmlData::set_limit($_REQUEST['limit']); - - echo xmlData::videos($video_ids); - break; - case 'video': - $video_id = scrub_in($_REQUEST['filter']); - - echo xmlData::videos(array($video_id)); - break; - case 'localplay': - // Load their localplay instance - $localplay = new Localplay(Config::get('localplay_controller')); - $localplay->connect(); - - switch ($_REQUEST['command']) { - case 'next': - case 'prev': - case 'play': - case 'stop': - $result_status = $localplay->$_REQUEST['command'](); - $xml_array = array('localplay'=>array('command'=>array($_REQUEST['command']=>make_bool($result_status)))); - echo xmlData::keyed_array($xml_array); - break; - default: - // They are doing it wrong - echo xmlData::error('405',_('Invalid Request')); - break; - } // end switch on command - - break; - case 'democratic': - // Load up democratic information - $democratic = Democratic::get_current_playlist(); - $democratic->set_parent(); - - switch ($_REQUEST['method']) { - case 'vote': - $type = 'song'; - $media = new $type($_REQUEST['oid']); - if (!$media->id) { - echo xmlData::error('400',_('Media Object Invalid or Not Specified')); - break; - } - $democratic->vote(array(array('song',$media->id))); - - // If everything was ok - $xml_array = array('action'=>$_REQUEST['action'],'method'=>$_REQUEST['method'],'result'=>true); - echo xmlData::keyed_array($xml_array); - break; - case 'devote': - $type = 'song'; - $media = new $type($_REQUEST['oid']); - if (!$media->id) { - echo xmlData::error('400',_('Media Object Invalid or Not Specified')); - } - - $uid = $democratic->get_uid_from_object_id($media->id,$type); - $democratic->remove_vote($uid); - - // Everything was ok - $xml_array = array('action'=>$_REQUEST['action'],'method'=>$_REQUEST['method'],'result'=>true); - echo xmlData::keyed_array($xml_array); - break; - case 'playlist': - $objects = $democratic->get_items(); - Song::build_cache($democratic->object_ids); - Democratic::build_vote_cache($democratic->vote_ids); - xmlData::democratic($objects); - break; - case 'play': - $url = $democratic->play_url(); - $xml_array = array('url'=>$url); - echo xmlData::keyed_array($xml_array); - break; - default: - echo xmlData::error('405',_('Invalid Request')); - break; - } // switch on method - - - break; - default: - ob_end_clean(); - echo xmlData::error('405',_('Invalid Request')); - break; -} // end switch action -?> +// If we manage to get here, we still need to hand out an XML document +ob_end_clean(); +echo xmlData::error('405',_('Invalid Request')); |