public bool listContains(MovieBean movie, string target, string value, StringComparison comparison) { try { return(target.IndexOf(value, comparison) >= 0); } catch { return(false); } }
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); }
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()); } }
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)); }
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); }
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); }
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; }
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(""); }
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); } }
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); } }
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); }
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); }
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); }
public abstract bool check(MovieBean movie);
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); }
public override bool check(MovieBean movie) { bool val = (bool)movie.get(filterField); return(val == filterValue); }
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(); }
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); }