示例#1
0
        virtual async public Task <List <InfosFilm> > loadInfosFilm(Film f)
        {
            // Page de recherche allocine pour trouver la ou les pages consacrees au film
            List <string> requetes = PageRecherche(f.Titre);

            if (requetes == null)
            {
                // Pas trouve
                return(null);
            }

            List <InfosFilm> alternatives = new List <InfosFilm>();

            foreach (string requete in requetes)
            {
                MainForm.WriteMessageToConsole(requete);
                InfosFilm infos = await PageFilm(requete);

                if (infos != null && !infos.estVide())
                {
                    alternatives.Add(infos);
                }
            }

            return(alternatives);
        }
示例#2
0
        /// <summary>
        /// Recherche des informations pour un films
        /// </summary>
        /// <param name="film"></param>
        /// <returns></returns>
        internal async Task <List <InfosFilm> > rechercheInternet(Film film)
        {
            try
            {
                MainForm.WriteMessageToConsole("Recherche: " + nom);
                string        url        = string.Format(formatUrlRecherche, requete(film.Titre));
                List <string> pagesFilms = extract(url, xpathRecherche);
                if (pagesFilms == null)
                {
                    return(null);
                }

                List <InfosFilm> infos = new List <InfosFilm>();
                foreach (string page in pagesFilms)
                {
                    InfosFilm info = await chargePage(string.Format(formatUrlFilm, page));

                    if (!(info == null || info.estVide()))
                    {
                        infos.Add(info);
                    }
                }

                return(infos);
            }
            catch (Exception e)
            {
                MainForm.WriteExceptionToConsole(e);
                return(null);
            }
        }