Пример #1
0
        private async Task GetSeasonAndEpisodeInformation(Guid idShow, ShowInformation serieLocal)
        {
            // Si la saison est connu.
            if (_serieCollection.HaveSeason(idShow, serieLocal.Saison))
            {
                // Si Episode est non connu.
                if (!_serieCollection.HaveEpisode(idShow, serieLocal.Saison, serieLocal.Episode))
                {
                    int       idSerie = _serieCollection.GetIdSerieTmDb(idShow);
                    TvEpisode episode = await ClientTmDb.GetTvEpisodeAsync(idSerie, serieLocal.Saison, serieLocal.Episode);

                    lock (_objetToLock)
                    {
                        _serieCollection.AddEpisode(idShow, episode, serieLocal);
                    }
                }
            }
            else
            {
                // Cas ou il ne connait pas la saison.
                int      idSerie = _serieCollection.GetIdSerieTmDb(idShow);
                TvSeason saison  = await ClientTmDb.GetTvSeasonAsync(idSerie, serieLocal.Saison);

                await Task.Delay(500);

                TvEpisode episode = await ClientTmDb.GetTvEpisodeAsync(idSerie, serieLocal.Saison, serieLocal.Episode);

                lock (_objetToLock)
                {
                    _serieCollection.AddSaison(idShow, saison, episode, serieLocal);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Permet de créer un nouveau ShowModel.
        /// </summary>
        /// <param name="serie"></param>
        /// <returns></returns>
        private async Task <ShowModel> CreateNewShowModel(ShowInformation serie)
        {
            ShowModel showModel = new ShowModel();

            var temp = await ClientTmDb.SearchTvShowAsync(serie.Titre);

            await Task.Delay(500);

            if (temp.Results.Count > 0)
            {
                var tempSerieTrouve = temp.Results[0];

                // Récupération des informations de TmDb.
                TvShow tvShow = await ClientTmDb.GetTvShowAsync(tempSerieTrouve.Id);

                await Task.Delay(500);

                TvSeason saison = await ClientTmDb.GetTvSeasonAsync(tempSerieTrouve.Id, serie.Saison);

                await Task.Delay(500);

                TvEpisode episode = await ClientTmDb.GetTvEpisodeAsync(tempSerieTrouve.Id, serie.Saison, serie.Episode);

                showModel.TvShow = tvShow;
                showModel.TvSeasons.Add(saison);
                showModel.TvEpisodes.Add(episode);
                showModel.ShowInformation.Add(serie);
            }

            return(showModel);
        }
Пример #3
0
        /// <summary>
        /// Méthode permettant d'aller chercher sur l'API de TmDb les informations sur les films.
        /// </summary>
        /// <param name="moviesInfomration"></param>
        /// <returns></returns>
        private async Task <List <MovieModel> > GetMovieDbInformation(IEnumerable <MovieInformation> moviesInfomration)
        {
            List <MovieModel> returnMovieModels = new List <MovieModel>();

            foreach (MovieInformation movieInformation in moviesInfomration)
            {
                SearchMovie movieSelected;

                // Pour palier le limit rate du site j'attend 1 sec avant de refaire une recherche.
                await Task.Delay(1000);

                if (movieInformation.Annee != "Inconnu")
                {
                    SearchContainer <SearchMovie> temp = await ClientTmDb.SearchMovieAsync(movieInformation.Titre,
                                                                                           includeAdult : true,
                                                                                           year : Convert.ToInt32(movieInformation.Annee));

                    movieSelected = GetTheGoodMovie(temp, movieInformation);
                }
                else
                {
                    SearchContainer <SearchMovie> temp = await ClientTmDb.SearchMovieAsync(movieInformation.Titre,
                                                                                           includeAdult : true);

                    movieSelected = GetTheGoodMovie(temp, movieInformation);
                }

                Movie movieDb;

                if (movieSelected == null)
                {
                    //Log.Information("Aucune information TmDb trouvé pour " + movieInformation.Titre);

                    movieDb = new Movie
                    {
                        Title    = movieInformation.Titre,
                        Overview = "Aucune information de trouvé sur TmDb"
                    };
                }
                else
                {
                    //movieDb = await ClientTmDb.GetMovieAsync(movieSelected.Id);

                    // Récupération des infos avec les vidéos.
                    movieDb = await ClientTmDb.GetMovieAsync(movieSelected.Id, MovieMethods.Videos);
                }

                returnMovieModels.Add(new MovieModel(Guid.NewGuid())
                {
                    MovieInformation = movieInformation,
                    MovieTmDb        = movieDb,
                    DateAdded        = GetDateFileCreated(movieInformation.PathFile)
                });

                Log.Logger.Information("Ajout de " + movieDb.OriginalTitle);
            }

            return(returnMovieModels);
        }
Пример #4
0
        /// <summary>
        /// Permet de change la video par rapport à son ID, en donnant
        /// l'ID de TheMovieDatabase.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="idVideoTmDb"></param>
        /// <returns></returns>
        public async Task <MovieModel> ChangeVideo(Guid id, int idVideoTmDb)
        {
            MovieModel videoToChange = GetMovie(id);

            if (videoToChange == null)
            {
                return(null);
            }

            Movie videoTmDb = await ClientTmDb.GetMovieAsync(idVideoTmDb);

            lock (Lock)
            {
                videoToChange.MovieTmDb = videoTmDb;
                Storage.SaveMoviesModels(_movieModelsCollection);
            }

            return(videoToChange);
        }
Пример #5
0
        /// <summary>
        /// Récupère du site TmDb les informations par rapport à un titre.
        /// </summary>
        /// <param name="titre"></param>
        /// <returns></returns>
        public async Task <IEnumerable <SearchVideoModel> > GetListVideoOnTmDb(string titre)
        {
            List <SearchVideoModel> retourInfo = new List <SearchVideoModel>();

            var temp = await ClientTmDb.SearchMovieAsync(titre);

            foreach (SearchMovie result in temp.Results)
            {
                if (!string.IsNullOrEmpty(result.PosterPath))
                {
                    retourInfo.Add(new SearchVideoModel()
                    {
                        UrlAffiche  = "https://image.tmdb.org/t/p/w370_and_h556_bestv2" + result.PosterPath,
                        IdVideoTmDb = result.Id,
                        Titre       = result.Title,
                        ReleaseDate = result.ReleaseDate
                    });
                }
            }

            return(retourInfo);
        }