Пример #1
0
 public bool listContains(MovieBean movie, string target, string value, StringComparison comparison)
 {
     try
     {
         return(target.IndexOf(value, comparison) >= 0);
     }
     catch
     {
         return(false);
     }
 }
Пример #2
0
        private void titleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MovieBean selectedMovie = null;

            if (lstAllMovies.SelectedItems.Count > 0)
            {
                selectedMovie = (MovieBean)lstAllMovies.SelectedItems[0].Tag;
            }
            files.comparer = MovieComparer.COMPARE.TITLE;
            refreshMovies(selectedMovie);
        }
Пример #3
0
        private void playMovieToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MovieBean movie = (MovieBean)lstAllMovies.SelectedItems[0].Tag;

            if (File.Exists(movie.fullPath))
            {
                Process.Start(movie.fullPath);
                movie.watched = true;
                movie.watchedDates.Add(new DateTime());
            }
        }
Пример #4
0
        public override bool check(MovieBean movie)//This will need re-work if a movie can be part of more than one collection
        {
            String collection = ((String)movie.get(filterField));
            String movieVal   = "";

            if (collection != null || collection != "")
            {
                movieVal = collection;
            }

            return(filterValues.Contains(movieVal));
        }
Пример #5
0
        public void insertMovie(MovieBean oldMovie, MovieBean newMovie)
        {
            newMovie.dateAdded    = oldMovie.dateAdded;
            newMovie.fileName     = oldMovie.fileName;
            newMovie.fullPath     = oldMovie.fullPath;
            newMovie.uniqueID     = oldMovie.uniqueID;
            newMovie.watched      = oldMovie.watched;
            newMovie.watchedDates = oldMovie.watchedDates;

            movies.Remove(oldMovie);
            movies.Add(newMovie);
        }
Пример #6
0
        public override bool check(MovieBean movie)
        {
            List <string> value = (List <string>)movie.get(filterField);

            switch (filterType)
            {
            case TYPE.RELAXED:
                return(value.Intersect(filterValue).Any());

            case TYPE.STRICT:
                return(value.Intersect(filterValue).ToList().Count == filterValue.Count);
            }
            return(true);
        }
Пример #7
0
        private void importDataToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            MovieBean importedMovie = TheMovieDB.getMovieBean(movie);

            importedMovie.dateAdded    = movie.dateAdded;
            importedMovie.fileName     = movie.fileName;
            importedMovie.fullPath     = movie.fullPath;
            importedMovie.uniqueID     = movie.uniqueID;
            importedMovie.watched      = movie.watched;
            importedMovie.watchedDates = movie.watchedDates;

            movie = importedMovie;
            setupScreen();
            Cursor = Cursors.Default;
        }
Пример #8
0
        public static String saveBackdrop(MovieBean movie, string url)
        {
            if (url != "")
            {
                url = "https://image.tmdb.org/t/p/w640" + url;
                dynamic tempImage = new Bitmap(new System.IO.MemoryStream(new System.Net.WebClient().DownloadData(url)));
                string  filename  = applicationFolder + "\\MOVIES\\" + movie.uniqueID + "\\" + "Backdrop.jpg";
                System.IO.Directory.CreateDirectory(applicationFolder + "\\MOVIES\\" + movie.uniqueID);

                if (!File.Exists(applicationFolder + "\\MOVIES\\" + movie.uniqueID + "\\" + "Backdrop.jpg"))
                {
                    tempImage.Save(filename);
                }
                return(filename);
            }
            return("");
        }
Пример #9
0
 public static Bitmap getBackdrop(MovieBean movie)
 {
     try
     {
         if (File.Exists(applicationFolder + "\\MOVIES\\" + movie.uniqueID + "\\" + "Custom_Backdrop.jpg"))
         {
             return(new Bitmap(applicationFolder + "\\MOVIES\\" + movie.uniqueID + "\\Custom_Backdrop.jpg"));
         }
         else
         {
             return(new Bitmap(applicationFolder + "\\MOVIES\\" + movie.uniqueID + "\\Backdrop.jpg"));
         }
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Пример #10
0
 public static String saveCustomBackdrop(MovieBean movie, String path)
 {
     try
     {
         if (GlobalFunctions.isImageFile(path))
         {
             Bitmap image    = new Bitmap(path);
             string filename = applicationFolder + "\\MOVIES\\" + movie.uniqueID + "\\" + "Custom_Backdrop.jpg";
             System.IO.Directory.CreateDirectory(applicationFolder + "\\MOVIES\\" + movie.uniqueID);
             image.Save(filename);
             return(filename);
         }
         return(movie.backdropPath);
     }
     catch (Exception e)
     {
         return(movie.backdropPath);
     }
 }
Пример #11
0
        private bool importMovie(string filePath, bool getData)
        {
            //don't add the file if it has already been added
            bool addFile = true;

            foreach (MovieBean movie in files.movies)
            {
                if (movie.fullPath.Equals(filePath))
                {
                    addFile = false;
                }
            }

            if (!File.Exists(filePath))
            {
                addFile = false;
            }


            if (Directory.Exists(filePath))
            {
                addFile = false;
                foreach (String file in Directory.GetFiles(filePath).Union(Directory.GetDirectories(filePath)))
                {
                    importMovie(file, getData);
                }
            }

            if (addFile && GlobalFunctions.isVideoFile(filePath))
            {
                //create and add a MovieBean to Storage.movies
                MovieBean movie = new MovieBean();
                movie.setup(filePath, getUniqueID());
                if (getData)
                {
                    movie = movie.merge(TheMovieDB.getMovieBean(movie));
                }
                files.movies.Add(movie);
                files.addMovieScan(Path.GetDirectoryName(filePath));
                return(true);
            }
            return(false);
        }
Пример #12
0
        public override bool check(MovieBean movie)
        {
            double value = double.Parse(movie.get(filterField).ToString());

            switch (filterType)
            {
            case TYPE.BETWEEN:
                return((value > lowerBound) && (value < upperBound));

            case TYPE.EXACT:
                return(value == lowerBound);

            case TYPE.GREATER_THAN:
                return(value > lowerBound);

            case TYPE.LESS_THAN:
                return(value < lowerBound);
            }
            return(true);
        }
Пример #13
0
        public override bool check(MovieBean movie)
        {
            DateTime movieVal = (DateTime)movie.get(filterField);

            switch (filterType)
            {
            case TYPE.AFTER:
                return(lowerBound.CompareTo(movieVal) < 0);

            case TYPE.BEFORE:
                return(upperBound.CompareTo(movieVal) > 0);

            case TYPE.BETWEEN:
                return(lowerBound.CompareTo(movieVal) < 0 && upperBound.CompareTo(movieVal) > 0);

            case TYPE.EXACT:
                return(lowerBound.CompareTo(movieVal) == 0);
            }
            return(true);
        }
Пример #14
0
 public abstract bool check(MovieBean movie);
Пример #15
0
        private static MovieBean parseJSONForBean(String json, String creditsJSON)
        {
            MovieBean returnBean = new MovieBean();

            JObject       ser  = JObject.Parse(json);
            List <JToken> data = ser.Children().ToList();

            foreach (JProperty item in data)
            {
                item.CreateReader();
                switch (item.Name)
                {
                case "adult":
                    returnBean.adult = item.Value.Equals("False");
                    break;

                case "backdrop_path":
                    returnBean.backdropPath = item.Value.ToString();
                    break;

                case "belongs_to_collection":
                    try
                    {
                        returnBean.belongsToCollection = item.Value.Value <String>("name");
                    }
                    catch (Exception ex)
                    {
                        //Do Nothing - leave it as null
                    }
                    break;

                case "budget":
                    try
                    {
                        returnBean.budget = int.Parse(item.Value.ToString());
                    }
                    catch
                    {
                        returnBean.budget = 0;
                    }
                    break;

                case "genres":
                    foreach (JToken i in item.Value)
                    {
                        returnBean.genres.Add(i.Value <String>("name"));
                    }

                    break;

                case "id":
                    returnBean.id = item.Value.ToString();
                    break;

                case "original_language":
                    returnBean.originallanguage = new CultureInfo(item.Value.ToString()).DisplayName;
                    break;

                case "overview":
                    returnBean.overview = item.Value.ToString();
                    break;

                case "popularity":
                    try
                    {
                        returnBean.popularity = decimal.Parse(item.Value.ToString());
                    }
                    catch
                    {
                        returnBean.popularity = 0;
                    }

                    break;

                case "poster_path":
                    returnBean.posterPath = item.Value.ToString();
                    break;

                case "production_companies":
                    foreach (JToken i in item.Value)
                    {
                        returnBean.productionCompanies.Add(i.Value <string>("name"));
                    }

                    break;

                case "release_date":
                    try
                    {
                        returnBean.releaseDate = System.DateTime.Parse(item.Value.ToString());
                    }catch (Exception e)
                    {
                        returnBean.releaseDate = new System.Windows.Forms.DateTimePicker().MinDate;
                    }

                    break;

                case "revenue":
                    try
                    {
                        returnBean.revenue = int.Parse(item.Value.ToString());
                    }
                    catch
                    {
                        returnBean.revenue = 0;
                    }
                    break;

                case "runtime":
                    if (item.Value.ToString() == "")
                    {
                        returnBean.runtime = 0;
                    }
                    else
                    {
                        returnBean.runtime = int.Parse(item.Value.ToString());
                    }

                    break;

                case "spoken_languages":
                    foreach (JToken i in item.Value)
                    {
                        returnBean.spokenLanguages.Add(i.Value <string>("name"));
                    }

                    break;

                case "tagline":
                    returnBean.tagline = item.Value.ToString();
                    break;

                case "title":
                    returnBean.title = item.Value.ToString();
                    break;

                case "vote_average":
                    returnBean.voteAverage = Decimal.Parse(item.Value.ToString());
                    break;
                }
            }

            returnBean.cast = getAllCast(creditsJSON);
            returnBean.crew = getAllCrew(creditsJSON);

            return(returnBean);
        }
Пример #16
0
        public override bool check(MovieBean movie)
        {
            bool val = (bool)movie.get(filterField);

            return(val == filterValue);
        }
Пример #17
0
        private void refreshMovies(MovieBean selectedMovie)
        {
            lstAllMovies.Items.Clear();

            //files.movies.Sort(new MovieComparer.LexicographicalComparator());
            switch (files.comparer)
            {
            case MovieComparer.COMPARE.RATING:
                files.movies.Sort(new MovieComparer.RatingComparer());
                lblSortMode.Text = "sort mode: rating";
                break;

            case MovieComparer.COMPARE.RECENTLY_ADDED:
                files.movies.Sort(new MovieComparer.RecentlyAddedComparer());
                lblSortMode.Text = "sort mode: recently added";
                break;

            case MovieComparer.COMPARE.RECENTLY_WATCHED:
                files.movies.Sort(new MovieComparer.RecentlyAddedComparer());
                lblSortMode.Text = "sort mode: recently watched";
                break;

            case MovieComparer.COMPARE.RUNNING_TIME:
                files.movies.Sort(new MovieComparer.RunningTimeComparer());
                lblSortMode.Text = "sort mode: running time";
                break;

            case MovieComparer.COMPARE.TITLE:
                files.movies.Sort(new MovieComparer.LexicographicalComparator());
                lblSortMode.Text = "sort mode: title";
                break;

            case MovieComparer.COMPARE.YEAR:
                files.movies.Sort(new MovieComparer.YearComparer());
                lblSortMode.Text = "sort mode: year";
                break;

            default:
                files.movies.Sort(new MovieComparer.LexicographicalComparator());
                lblSortMode.Text = "sort mode: title";
                break;
            }

            foreach (MovieBean movie in files.movies)
            {
                //if the file matches search string (if there is a search string)
                if ((txtSearch.Text != "" && (listContains(movie, movie.fileName, txtSearch.Text, StringComparison.OrdinalIgnoreCase) || (movie.title != null && listContains(movie, movie.title, txtSearch.Text, StringComparison.OrdinalIgnoreCase)))) || txtSearch.Text == "")
                {
                    lblFilterApplied.Text = "no filter";
                    //now check the filtering
                    bool passedFilterChecks = true;
                    foreach (FilterItem filter in filters)
                    {
                        lblFilterApplied.Text = "filter applied";
                        if (!filter.check(movie))
                        {
                            passedFilterChecks = false;
                            break;
                        }
                    }

                    if (passedFilterChecks)
                    {
                        ListViewItem lvi = new ListViewItem();
                        lvi.Tag = movie;

                        string text = movie.title;
                        if (string.IsNullOrEmpty(text))
                        {
                            text = movie.fileName;
                        }
                        lvi.Text = text;

                        if (selectedMovie != null && movie.fullPath.Equals(selectedMovie.fullPath))
                        {
                            lvi.Selected = true;
                        }
                        lstAllMovies.Items.Add(lvi);
                    }
                }
            }
            refreshMoveiCount();
        }
Пример #18
0
        public static MovieBean getMovieBean(MovieBean movie)
        {
            String searchString  = GlobalFunctions.editFilename(movie.fileName);
            String TheMovieDB_ID = GlobalFunctions.getTheMovieDbKeyFromGoogle(movie.getTitle());

            if (TheMovieDB_ID.Length < 1)
            {
                return(movie);
            }

            String movieJSON = GlobalFunctions.getHTML("https://api.themoviedb.org/3/movie/" + TheMovieDB_ID + "?api_key=" + THE_MOVIE_DB_API_KEY);
            String castJSON  = GlobalFunctions.getHTML("https://api.themoviedb.org/3/movie/" + TheMovieDB_ID + "/credits?api_key=" + THE_MOVIE_DB_API_KEY);

            MovieBean importedMovie = parseJSONForBean(movieJSON, castJSON);

            importedMovie.posterPath   = ImageHandler.savePoster(movie, importedMovie.posterPath);
            importedMovie.backdropPath = ImageHandler.saveBackdrop(movie, importedMovie.backdropPath);


            //add data to the storage list
            if (importedMovie.belongsToCollection != null && (!frmMain.files.collections.Contains(importedMovie.belongsToCollection)))
            {
                frmMain.files.collections.Add(importedMovie.belongsToCollection);
            }

            foreach (String genre in importedMovie.genres)
            {
                if (!frmMain.files.genres.Contains(genre))
                {
                    frmMain.files.genres.Add(genre);
                }
            }

            foreach (String prod in importedMovie.productionCompanies)
            {
                if (!frmMain.files.productionCompanies.Contains(prod))
                {
                    frmMain.files.productionCompanies.Add(prod);
                }
            }

            foreach (String lang in importedMovie.spokenLanguages)
            {
                if (!frmMain.files.languages.Contains(lang))
                {
                    frmMain.files.languages.Add(lang);
                }
            }

            foreach (MovieBean.Movie_DB_ID_Name actor in importedMovie.cast)
            {
                if (!frmMain.files.actors.Contains(actor.name))
                {
                    frmMain.files.actors.Add(actor.id);
                }
            }

            foreach (MovieBean.Movie_DB_ID_Name director in importedMovie.crew)
            {
                if (director.name.ToUpper().Equals("DIRECTOR"))
                {
                    if (!frmMain.files.actors.Contains(director.id))
                    {
                        frmMain.files.directors.Add(director.id);
                    }
                }
            }

            return(importedMovie);
        }