//get now tab select movie
        private DoubanMovieInfo.Storage.DoubanMovieInfo getSelectDoubanInfo()
        {
            int now       = movie_Tab.SelectedIndex;
            int showIndex = 0;

            if (now == 0)
            {
                showIndex = movieList.SelectedIndex;
            }
            else
            {
                showIndex = movieGrid.SelectedIndex;
            }
            if (showIndex < 0)
            {
                return(null);
            }
            var t = movieGrid.Items[showIndex] as DataListView;

            DoubanMovieInfo.Storage.DoubanMovieInfo tmp = Fish.MovieManager.DoubanControl.Class1.Instance.GetDoubanMovieInfo(t.doubanId);
            return(tmp);
        }
Beispiel #2
0
        /// <summary>
        /// 根据电影名称,利用豆瓣的API抓取其主要信息
        /// </summary>
        /// <param name="name">电影的名称</param>
        /// <returns>一个DoubanMovieInfo类型</returns>
        public DoubanMovieInfo.Storage.DoubanMovieInfo GetMovieInfo(string name)
        {
            var movie    = new DoubanMovieInfo.Storage.DoubanMovieInfo();
            var doubanId = GetSearchResult(name);

            string url  = String.Format("https://api.douban.com/v2/movie/subject/{0}", doubanId);
            var    json = JObject.Parse(GetJson(url));

            //Console.WriteLine(json);
            movie.doubanId = int.Parse((string)json["id"]);
            movie.title    = (string)json["title"];
            if (json.GetValue("original_title") != null)
            {
                movie.originalTitle = (string)json["original_title"];
            }
            if (json.GetValue("aka") != null)
            {
                List <string> lst = new List <string>();
                foreach (var item in json["aka"].ToList())
                {
                    lst.Add((string)item);
                }
                movie.aka = string.Join("/", lst);
            }
            if (json.GetValue("rating") != null)
            {
                movie.rating = float.Parse((string)json["rating"]["average"]);
            }
            if (json.GetValue("ratings_count") != null)
            {
                movie.ratingsCount = int.Parse((string)json["ratings_count"]);
            }
            if (json.GetValue("images") != null)
            {
                var    getFile    = Fish.MovieManager.GetFile.Class1.Instance;
                string image_url  = (string)json["images"]["large"];
                string image_name = GetFile.Class1.Instance.GetFileNameFromUrl(image_url);
                string path       = String.Format("{0}\\movie_images\\{1}", System.AppDomain.CurrentDomain.BaseDirectory, image_name);
                movie.image = path;

                Fish.MovieManager.GetFile.Class1.Instance.GetFileFromWeb(image_url, path);
            }
            if (json.GetValue("directors") != null)
            {
                movie.directors = int.Parse((string)json["directors"][0]["id"]);
            }
            if (json.GetValue("casts") != null)
            {
                foreach (var item in json["casts"].ToList())
                {
                    movie.casts.Add(int.Parse((string)item["id"]));
                }
            }
            if (json.GetValue("douban_site") != null)
            {
                movie.doubanSite = (string)json["douban_site"];
            }
            if (json.GetValue("year") != null)
            {
                movie.year = int.Parse((string)json["year"]);
            }
            if (json.GetValue("genres") != null)
            {
                foreach (var item in json["genres"].ToList())
                {
                    //Console.WriteLine(item);
                    movie.genres.Add((string)item);
                }
            }
            if (json.GetValue("countries") != null)
            {
                List <string> lst = new List <string>();
                foreach (var item in json["countries"].ToList())
                {
                    lst.Add((string)item);
                }
                movie.countries = string.Join("/", lst);
            }
            if (json.GetValue("summary") != null)
            {
                movie.summary = (string)json["summary"];
            }
            return(movie);
        }