예제 #1
0
        private JarvisResponse HandleMusic(WitOutcome o)
        {
            var query = o.GetFirstString("music_query").Value;

            // check playlists
            var playlists = SearchPlaylists(query);

            if (GetBestDistance(query) < 5) // matches playlist most probably
            {
                PlayPlaylist(playlists.First());
            }
            else if (query.IndexOf(" by ") != -1)   // matches song/artist combo probably
            {
                var sections = query.Split(new string[] { " by " }, StringSplitOptions.RemoveEmptyEntries);

                if (sections.Length == 2)
                {
                    var song   = sections[0];
                    var artist = sections[1];

                    if (song == "song" || song == "songs" || song == "music") // special case
                    {
                        return(HandleArtist(artist));
                    }

                    return(HandleSong(song, artist));
                }
            }
            else
            {
                var search = Search(query);
                if (search.Tracks.Count > 0)
                {
                    PlaySearch(search);
                    return(JarvisResponse.None);
                }
            }


            return(JarvisResponse.Unknown);
        }
예제 #2
0
        private JarvisResponse HandleAction(WitOutcome o)
        {
            var action = o.GetFirstString("action").Value;

            switch (action)
            {
            case "next":
                _player.Next();
                break;

            case "prev":
                _player.Previous();
                break;

            case "play":
                _player.Play();
                break;

            case "pause":
                _player.Pause();
                break;
            }
            return(JarvisResponse.None);
        }