示例#1
0
文件: APISurface.cs 项目: XCVG/XSMP
        private APIResponse GetSearch(APIRequest request)
        {
            string keyword = request.Params["keyword"];

            Dictionary <string, object> responseData = new Dictionary <string, object>();

            string[] listOptions = APIUtils.SplitCSVList(request.Params["list"]);

            //run searches
            if (listOptions.Contains("songs"))
            {
                responseData.Add("songs", MediaDatabase.FindSongsByName(keyword));
            }
            if (listOptions.Contains("albums"))
            {
                responseData.Add("albums", MediaDatabase.FindAlbumsByName(keyword));
            }
            if (listOptions.Contains("artists"))
            {
                responseData.Add("artists", MediaDatabase.FindArtistsByName(keyword));
            }
            if (listOptions.Contains("folders"))
            {
                responseData.Add("folders", MediaDatabase.FindFoldersByName(keyword));
            }
            if (listOptions.Contains("playlists"))
            {
                responseData.Add("playlists", MediaDatabase.FindPlaylistsByName(keyword));
            }

            return(new APIResponse(JsonConvert.SerializeObject(new { data = responseData })));
        }
示例#2
0
文件: APISurface.cs 项目: XCVG/XSMP
        private APIResponse GetArtist(APIRequest request)
        {
            var artist = MediaDatabase.GetArtist(request.Segment);
            Dictionary <string, object> responseData = null;

            if (artist.HasValue)
            {
                responseData = new Dictionary <string, object>();
                responseData.Add("artist", artist.Value);

                //handle list song and list album options
                if (request.Params.ContainsKey("list"))
                {
                    var listOptions = APIUtils.SplitCSVList(request.Params["list"]);
                    if (listOptions.Contains("songs"))
                    {
                        responseData.Add("songs", MediaDatabase.GetArtistSongs(request.Segment));
                    }
                    if (listOptions.Contains("albums"))
                    {
                        responseData.Add("albums", MediaDatabase.GetArtistAlbums(request.Segment));
                    }
                }
            }

            return(new APIResponse(JsonConvert.SerializeObject(new { data = responseData })));
        }
示例#3
0
文件: APISurface.cs 项目: XCVG/XSMP
        private APIResponse GetSearch2(APIRequest request)
        {
            request.Params.TryGetValue("song", out string song);
            request.Params.TryGetValue("album", out string album);
            request.Params.TryGetValue("artist", out string artist);

            if (string.IsNullOrEmpty(song) && string.IsNullOrEmpty(album) && string.IsNullOrEmpty(artist))
            {
                throw new ParameterMissingException();
            }

            if (!request.Params.ContainsKey("list"))
            {
                throw new ParameterMissingException("list");
            }

            Dictionary <string, object> responseData = new Dictionary <string, object>();

            string[] listOptions = APIUtils.SplitCSVList(request.Params["list"]);

            //run searches
            if (listOptions.Contains("songs"))
            {
                responseData.Add("songs", MediaDatabase.FindSongsByParameters(song, album, artist));
            }
            if (listOptions.Contains("albums"))
            {
                responseData.Add("albums", MediaDatabase.FindAlbumsByParameters(song, album, artist));
            }
            if (listOptions.Contains("artists"))
            {
                responseData.Add("artists", MediaDatabase.FindArtistsByParameters(song, album, artist));
            }

            return(new APIResponse(JsonConvert.SerializeObject(new { data = responseData })));
        }