Esempio n. 1
0
        public static async Task<List<TVShow>> GetTVShows(Limits limits = null, Filter filter = null, Sort sort = null)
        {
            JObject parameters = new JObject(
                                new JProperty("properties",
                                    new JArray("title", "genre", "year", "rating", "plot", "studio", "mpaa", "cast", "playcount", "episode", "imdbnumber", "premiered", "votes", "lastplayed", "fanart", "thumbnail", "file", "originaltitle", "sorttitle", "episodeguide", "season", "watchedepisodes", "dateadded", "tag", "art")
                                    ));

            if (limits != null)
            {
                parameters["limits"] = JObject.FromObject(limits);
            }

            if (filter != null)
            {
                parameters["filter"] = JObject.FromObject(filter);
            }

            if (sort != null)
            {
                parameters["sort"] = JObject.FromObject(sort);
            }

            JObject responseObject = await ConnectionManager.ExecuteRPCRequest("VideoLibrary.GetTVShows", parameters);
            JArray tvShowsListObject = (JArray)responseObject["result"]["tvshows"];
            
            List<TVShow> listToReturn = tvShowsListObject != null ? tvShowsListObject.ToObject<List<TVShow>>() : new List<TVShow>();
            return listToReturn;
        }
Esempio n. 2
0
        public static async Task<List<Song>> GetSongs(Filter filter = null, Limits limits = null, Sort sort = null)
        {
            JObject parameters = new JObject(
                                     new JProperty("properties",
                                         new JArray("album", "albumartist", "albumartistid", "albumid", "comment", "disc", "duration", "file", "lastplayed", "lyrics", "musicbrainzartistid", "musicbrainztrackid", "playcount", "track"))
                                             );

            if (limits != null)
            {
                parameters["limits"] = JObject.FromObject(limits);
            }

            if (filter != null)
            {
                parameters["filter"] = JObject.FromObject(filter);
            }

            if (sort != null)
            {
                parameters["sort"] = JObject.FromObject(sort);
            }

            JObject responseObject = await ConnectionManager.ExecuteRPCRequest("AudioLibrary.GetSongs", parameters);

            JArray songListObject = (JArray)responseObject["result"]["songs"];
            List<Song> listToReturn = songListObject != null ? songListObject.ToObject<List<Song>>() : new List<Song>();
            return listToReturn;
        }
Esempio n. 3
0
        async void AlbumPage_Loaded(object sender, RoutedEventArgs e)
        {
            ConnectionManager.ManageSystemTray(true);
            Filter filter = new Filter { Field = "album", Operator = "is", value = GlobalVariables.CurrentAlbum.Title };
            Sort sort = new Sort { Method = "track", Order = "ascending", IgnoreArticle = true };
            songsInAlbum = await AudioLibrary.GetSongs(filter: filter, sort: sort);
            SongsListView.ItemsSource = songsInAlbum;

            currentAlbum = await AudioLibrary.GetAlbumDetails(GlobalVariables.CurrentAlbum.AlbumId);
            this.DataContext = currentAlbum;
            ConnectionManager.ManageSystemTray(false);
        }
Esempio n. 4
0
        public static async Task<int> GetSongsCount(Filter filter = null)
        {
            JObject parameters = new JObject();
            Limits limits = new Limits { Start = 0, End = 1 };
            if (filter != null)
            {
                parameters["filter"] = JObject.FromObject(filter);
            }
            parameters["limits"] = JObject.FromObject(limits);

            JObject responseObject = await ConnectionManager.ExecuteRPCRequest("AudioLibrary.GetSongs", parameters);
            return (int)responseObject["result"]["limits"]["total"];
        }
Esempio n. 5
0
        async void AlbumPage_Loaded(object sender, RoutedEventArgs e)
        {
            var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
            string track = loader.GetString("Track");
            string tracks = loader.GetString("Tracks");

            ConnectionManager.ManageSystemTray(true);
            Filter filter = new Filter { Field = "album", Operator = "is", value = GlobalVariables.CurrentAlbum.Title };
            Sort sort = new Sort { Method = "track", Order = "ascending", IgnoreArticle = true };
            songsInAlbum = await AudioLibrary.GetSongs(filter: filter, sort: sort);
            SongsListView.ItemsSource = songsInAlbum;

            TrackCountTextBlock.Text = songsInAlbum.Count.ToString();
            TracksTextBlock.Text = songsInAlbum.Count > 1 ? tracks : track;

            currentAlbum = await AudioLibrary.GetAlbumDetails(GlobalVariables.CurrentAlbum.AlbumId);
            AlbumInfoGrid.DataContext = currentAlbum;
            ConnectionManager.ManageSystemTray(false);
        }
 private async void ReloadAll()
 {
     Filter filter = new Filter { Field = "artist", Operator = "is", value = GlobalVariables.CurrentArtist.ArtistName };
     songsList = await AudioLibrary.GetSongs(filter);
     SongsHubSection.DataContext = songsList;
     albumsList = await AudioLibrary.GetAlbums(filter);
     AlbumsHubSection.DataContext = albumsList;
 }
        private async void SearchAndReload(string query)
        {
            ConnectionManager.ManageSystemTray(true);

            Filter artistFilter = new Filter { Field = "artist", Operator = "contains", value = query };
            Sort artistSort = new Sort { Method = "artist", Order = "ascending", IgnoreArticle = true };
            ArtistSearchListView.ItemsSource = await AudioLibrary.GetArtists(artistFilter, sort: artistSort);

            Filter albumFilter = new Filter { Field = "album", Operator = "contains", value = query };
            Sort albumSort = new Sort { Method = "album", Order = "ascending", IgnoreArticle = true };
            AlbumSearchGridView.ItemsSource = await AudioLibrary.GetAlbums(albumFilter, sort: albumSort);

            Filter songFilter = new Filter { Field = "title", Operator = "contains", value = query };
            Sort songSort = new Sort { Method = "title", Order = "ascending", IgnoreArticle = true };
            SongsSearchListView.ItemsSource = await AudioLibrary.GetSongs(songFilter, sort: songSort);

            ConnectionManager.ManageSystemTray(false);
        }
Esempio n. 8
0
        public static async Task<List<Artist>> GetArtists(Filter filter = null, Limits limits = null, Sort sort = null)
        {
            JObject parameters = new JObject(
                                     new JProperty("properties",
                                         new JArray("born", "description", "died", "disbanded", "formed", "instrument", "mood", "musicbrainzartistid", "style", "yearsactive", "thumbnail", "fanart"))
                                             );

            if (limits != null)
            {
                parameters["limits"] = JObject.FromObject(limits);
            }

            if (filter != null)
            {
                parameters["filter"] = JObject.FromObject(filter);
            }

            if (sort != null)
            {
                parameters["sort"] = JObject.FromObject(sort);
            }

            JObject responseObject = await ConnectionManager.ExecuteRPCRequest("AudioLibrary.GetArtists", parameters);

            JArray artistListObject = (JArray)responseObject["result"]["artists"];
            List<Artist> listToReturn = artistListObject != null ? artistListObject.ToObject<List<Artist>>() : new List<Artist>();
            return listToReturn;
        }
Esempio n. 9
0
        public static async Task<List<Album>> GetAlbums(Filter filter = null, Limits limits = null, Sort sort = null)
        {
            JObject parameters =
                                new JObject(
                                    new JProperty("properties",
                                        new JArray("title", "description", "artist", "genre", "theme", "mood", "style", "type", "albumlabel", "rating", "year", "musicbrainzalbumid", "musicbrainzalbumartistid", "fanart", "thumbnail", "playcount", "genreid", "artistid", "displayartist"))
                                            );

            if (limits != null)
            {
                parameters["limits"] = JObject.FromObject(limits);
            }

            if (filter != null)
            {
                parameters["filter"] = JObject.FromObject(filter);
            }

            if (sort != null)
            {
                parameters["sort"] = JObject.FromObject(sort);
            }


            JObject responseObject = await ConnectionManager.ExecuteRPCRequest("AudioLibrary.GetAlbums", parameters);

            JArray albumListObject = (JArray)responseObject["result"]["albums"];
            List<Album> listToReturn = albumListObject != null ? albumListObject.ToObject<List<Album>>() : new List<Album>();
            return listToReturn;
        }
        private async void SearchAndReload(string query)
        {
            ConnectionManager.ManageSystemTray(true);

            Filter filter = new Filter { Field = "title", Operator = "contains", value = query };
            SearchMoviesListView.ItemsSource = new MoviesCollection(filter: filter);

            ConnectionManager.ManageSystemTray(false);
        }
Esempio n. 11
0
        public static async Task<int> GetEpisodesCount(Filter filter = null, int? tvShowID = null)
        {
            JObject parameters = new JObject();
            Limits limits = new Limits { Start = 0, End = 1 };
            if (filter != null)
            {
                parameters["filter"] = JObject.FromObject(filter);
            }
            if (tvShowID != null)
            {
                parameters["tvshowid"] = tvShowID;
            }
            parameters["limits"] = JObject.FromObject(limits);

            JObject responseObject = await ConnectionManager.ExecuteRPCRequest("VideoLibrary.GetEpisodes", parameters);
            return (int)responseObject["result"]["limits"]["total"];
        }
Esempio n. 12
0
        public static async Task<List<Episode>> GetEpisodes(Limits limits = null, Filter filter = null, Sort sort = null, int? tvShowID = null)
        {
            JObject parameters = new JObject(
                               new JProperty("properties",
                                   new JArray("title", "plot", "votes", "rating", "writer", "firstaired", "playcount", "runtime", "director", "productioncode", "season", "episode", "originaltitle", "showtitle", "streamdetails", "lastplayed", "fanart", "thumbnail", "file", "resume", "tvshowid", "dateadded", "uniqueid", "art")
                                   ));

            if (tvShowID != null)
            {
                parameters["tvshowid"] = tvShowID;
            }

            if (limits != null)
            {
                parameters["limits"] = JObject.FromObject(limits);
            }

            if (filter != null)
            {
                parameters["filter"] = JObject.FromObject(filter);
            }

            if (sort != null)
            {
                parameters["sort"] = JObject.FromObject(sort);
            }


            JObject responseObject = await ConnectionManager.ExecuteRPCRequest("VideoLibrary.GetEpisodes", parameters);
            JArray episodeListObject = (JArray)responseObject["result"]["episodes"];

            List<Episode> listToReturn = episodeListObject != null ? episodeListObject.ToObject<List<Episode>>() : new List<Episode>();
            return listToReturn;
        }
Esempio n. 13
0
        public static async Task<List<Movie>> GetMovies(Limits limits = null, Filter filter = null, Sort sort = null)
        {
            JObject parameters = new JObject(
                                new JProperty("properties",
                                    new JArray("title", "genre", "year", "rating", "director", "trailer", "tagline", "plot", "plotoutline", "originaltitle", "lastplayed", "playcount", "writer", "studio", "mpaa", "cast", "country", "imdbnumber", "runtime", "set", "showlink", "streamdetails", "top250", "votes", "fanart", "thumbnail", "file", "sorttitle", "resume", "setid", "dateadded", "tag", "art")
                                    ));

            if (limits != null)
            {
                parameters["limits"] = JObject.FromObject(limits);
            }

            if (filter != null)
            {
                parameters["filter"] = JObject.FromObject(filter);
            }

            if (sort != null)
            {
                parameters["sort"] = JObject.FromObject(sort);
            }


            JObject responseObject = await ConnectionManager.ExecuteRPCRequest("VideoLibrary.GetMovies", parameters);
            JArray movieListObject = (JArray)responseObject["result"]["movies"];

            List<Movie> listToReturn = movieListObject != null ? movieListObject.ToObject<List<Movie>>() : new List<Movie>();
            return listToReturn;
        }
        private void LoadMovies()
        {
            var loadStartTime = DateTime.Now;

            ConnectionManager.ManageSystemTray(true);
            AllMoviesListView.ItemsSource = new MoviesCollection();

            Filter newFilter = new Filter { Field = "playcount", Operator = "is", value = "0" };
            UnwatchedMoviesListView.ItemsSource = new MoviesCollection(filter: newFilter);

            Filter watchedFilter = new Filter { Field = "playcount", Operator = "greaterthan", value = "0" };
            WatchedMoviesListView.ItemsSource = new MoviesCollection(filter: watchedFilter);
            ConnectionManager.ManageSystemTray(false);

            GlobalVariables.CurrentTracker.SendTiming(DateTime.Now.Subtract(loadStartTime), TimingCategories.LoadTime, "AllMovies", "AllMovies");
        }
        private async Task PopulatePage(string navigationArgs)
        {
            string showName = navigationArgs.Split("_".ToArray())[1];
            ShowNameTextBlock.Text = showName;

            var shows = await VideoLibrary.GetTVShows();
            int showId = shows.Where(show => show.Title == showName).FirstOrDefault().TvShowId;

            if (showId == null)
                return;

            Filter newFilter = new Filter { Field = "playcount", Operator = "is", value = "0" };

            Sort sort = new Sort { Method = "label", IgnoreArticle = true, Order = "ascending" };

            var newEpisodes = new EpisodesCollection(newFilter, sort, showId);
            NewEpisodesListView.ItemsSource = newEpisodes;

            Filter watchedFilter = new Filter { Field = "playcount", Operator = "greaterthan", value = "0" };

            var watchedEpisodes = new EpisodesCollection(watchedFilter, sort, showId);
            WatchedEpisodesListView.ItemsSource = watchedEpisodes;
            
            if (await VideoLibrary.GetEpisodesCount(tvShowID: showId) == 0)
            {
                string message = String.Format("No episodes were found in {0}. We will take you to the library now.", showName);
                string messageHeader = "Nothing Here!";
                MessageDialog msg = new MessageDialog(message, messageHeader);
                await msg.ShowAsync();
                Frame.Navigate(typeof(CoverPage));
            }
        }