コード例 #1
0
        private int FindRipMethod(string title)
        {
            int result = -1;
            Movie movie = new Movie();
            title = title.Replace(" ", ".").Replace("-", ".").Replace("{", ".").Replace("}", ".").Replace("[", ".").Replace("]", ".").Replace("(", ".").Replace(")", ".").Replace("_", ".");
            string[] array = title.Split('.');

            string[] ripMethod = new string[]{
                    "DVDRIP",
                    "DVD",
                    "BRRIP",
                    "BDRIP",
                    "BLURAY",
                    "DVDSCR",
                    "DVDSCREENER",
                    "DVDRSCREENER",
                    "CAM",
                    "TELESYNC",
                    "TS",
                    "TC",
                    "R5",
                    "R3",
                    "PPVRIP",
                    "HDRIP",
                    "SCREENER",
                    "SCR",
            };
            bool found = false;
            foreach (string str in array)
            {
                for (int i = 0; i < ripMethod.Count(); i++)
                {
                    if (str.ToUpper().Contains(ripMethod[i]))
                    {
                        result = i;
                        found = true;
                        break;
                    }
                }
                if (found)
                    break;
            }

            if (result > -1)
            {
                if (result < 2)
                    result = 1;
                else if (result < 5)
                    result = 2;
                else if (result < 8)
                    result = 3;
                else if (result == 8)
                    result = 4;
                else if (result < 12)
                    result = 5;
                else if (result == 12)
                    result = 6;
                else if (result == 13)
                    result = 7;
                else if (result == 14)
                    result = 8;
                else if (result == 15)
                    result = 9;
                else if (result <= 17)
                    result = 10;
            }
            else
                result = 0;

            return result;
        }
コード例 #2
0
        private void PopulateDataGrid(string text, Movie current)
        {
            string[] arr = text.Replace("{", string.Empty).Replace("}", string.Empty).Replace("\"", string.Empty).Split(',');

            Movie movie = new Movie();
            string currentProperty = "";
            movie.index = FindRipMethod(current.Title);

            foreach (string item in arr)
            {
                if (item.Contains(':'))
                {
                    string[] tmp = item.Split(':');
                    currentProperty = tmp[0].Trim();

                    switch (currentProperty)
                    {
                        case "Title":
                            movie.Title = tmp[1].ToString();
                            if (tmp.Count() > 2)
                            {
                                movie.Title += ":";
                                for (int i = 2; i < tmp.Count(); i++)
                                    movie.Title += tmp[i].ToString();
                            }
                            break;
                        case "Year":
                            movie.Year = tmp[1].ToString();
                            break;
                        case "Rated":
                            movie.Rated = tmp[1].ToString();
                            break;
                        case "Released":
                            break;
                        case "Genre":
                            movie.Genre.Add(tmp[1].ToString());
                            break;
                        case "Director":
                            movie.Director = tmp[1].ToString();
                            break;
                        case "Writer":
                            movie.Writer.Add(tmp[1].ToString());
                            break;
                        case "Actors":
                            movie.Actors.Add(tmp[1].ToString());
                            break;
                        case "Plot":
                            movie.Plot = tmp[1].ToString();
                            if (tmp.Count() > 2)
                            {
                                movie.Plot += ":";
                                for (int i = 2; i < tmp.Count(); i++)
                                    movie.Plot += tmp[i].ToString();
                            }
                            break;
                        case "Poster":
                            if (!(tmp[1].ToString().Trim() == "N/A"))
                            {
                                movie.Poster = tmp[1].ToString() + ":" + tmp[2].ToString();
                            }
                            break;
                        case "Runtime":
                            movie.Runtime = tmp[1].ToString();
                            break;
                        case "Rating":
                            movie.Rating = tmp[1].ToString();
                            break;
                        case "Votes":
                            movie.Votes = tmp[1].ToString();
                            break;
                        case "ID":
                            movie.ID = tmp[1].ToString();
                            break;
                        case "Response":
                            break;
                        default:
                            break;
                    }
                }
                else
                {
                    switch (currentProperty)
                    {
                        case "Title":
                            movie.Title += "." + item.ToString();
                            break;
                        case "Genre":
                            movie.Genre.Add(item.Trim());
                            break;
                        case "Writer":
                            movie.Writer.Add(item.Trim());
                            break;
                        case "Actors":
                            movie.Actors.Add(item.Trim());
                            break;
                        default:
                            break;
                    }
                }
            }
            index++;
            movie.Nr = current.Nr;
            if (!string.IsNullOrEmpty(movie.Title))
                movie.IsEnabled = true;
            netList[movie.Nr-1] =  movie;

            if (!Directory.Exists(runningPath))
                Directory.CreateDirectory(runningPath);

            if (movie.Title != null || movie.Poster != null)
            {
                string img = runningPath + "\\" + (movie.Title + movie.Poster.Substring(movie.Poster.LastIndexOf("."))).Replace(':', ' ');
                if (!File.Exists(img))
                {
                    WebClient wc = new WebClient();
                    Uri uri = new Uri(movie.Poster);
                    wc.DownloadFile(uri, img);
                }
                movie.PosterImage = Image.FromFile(img);
            }
            //DataGridViewImageColumn imgColm = new DataGridViewImageColumn();
            //DataGridViewTextBoxColumn txtColm = new DataGridViewTextBoxColumn();
        }
コード例 #3
0
        private void FetchFromWeb(object sender, EventArgs e)
        {
            string searchTitel = "http://www.imdbapi.com/?t=";
            WebClient wc = null;

            foreach (Movie m in resultArray)
            {
                wc = new WebClient();
                wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

                string title = HttpUtility.UrlEncode(TokanizeFunction(m.Title).Trim());

                Uri uri = new Uri(searchTitel + title);
                currentMovie = m;
                wc.DownloadStringAsync(uri, m);
                wc.Dispose();
            }
        }