public void CreateEpisodeObjects(List <string> movieobjects) { int objCount = 0; if (movieobjects != null && movieobjects.Count > 0) { objCount = movieobjects.Count; foreach (string movieobject in movieobjects) { EpisodeObject newfile = new EpisodeObject(movieobject); newfile.Error = false; if (objCount == 1) { //Only one File in List, Foldername can be used for Naming newfile.NameMustComeFromFile = false; } else { //More than one File in List, Foldername cannot be used for Naming newfile.NameMustComeFromFile = true; } if (newfile != null) { episodeFiles.Add(newfile); } } } }//Make Episode Object from file
private void cutEpisode(EpisodeObject episode, bool preferFile, bool preferFolder) { string possibleFileNameFromFile = ""; string possibleFileNameFromFolder = ""; if (episode.type == 1 || episode.type == 3) //Use File if Episode Information is in Filename { possibleFileNameFromFile = getLongestFileNameFromFile(episode.EpisodeFile); } if (episode.type == 2 || episode.type == 3)//Check if Episode Information can be received from Path { possibleFileNameFromFolder = getLongestFileNameFromFolder(episode.EpisodeSplitPath); } if (episode.type == 0) //File and Path have no Episode Information but maybe suffix to cut { possibleFileNameFromFile = getLongestFileNameFromFile(episode.EpisodeFile); } //Normally longestCut Wins, but when not defined specific if (episode.type == 3) { if (preferFile == true && preferFolder == false && possibleFileNameFromFile.Length > 0) { episode.EpisodeNewFile = possibleFileNameFromFile; } else if (preferFolder == true && preferFile == false && possibleFileNameFromFolder.Length > 0) { episode.EpisodeNewFile = possibleFileNameFromFolder; } } if (episode.EpisodeNewFile == "" && possibleFileNameFromFile.Length > possibleFileNameFromFolder.Length) { episode.EpisodeNewFile = possibleFileNameFromFile; } else if (episode.EpisodeNewFile == "") { episode.EpisodeNewFile = possibleFileNameFromFolder; } else { //No FileInformation in it } }
private void checkForEpisodeInformation(EpisodeObject input) // Check if Episode is useable for Renaming { bool episodeInFile = false; //True if Episodename is in File bool episodeInFolder = false; //True if Episodename is in Folder and can be used if (Regex.IsMatch(input.EpisodeFile, Data.defaultRegex)) //Check if s00e00 is in Filename { episodeInFile = true; } //Check now Foldernames for Episode Information int countEpisodepath = 0; foreach (string episode in input.EpisodeSplitPath) //Search for Usable Information in Foldernames { if (Regex.IsMatch(episode, Data.defaultRegex) && input.NameMustComeFromFile == false) //Check if s00e00 is in Filename, Also ignore when more than one Movieobject is in the same Folder { //Episode is in path countEpisodepath++; } if (countEpisodepath == 1) { episodeInFolder = true; } } if (episodeInFile == true && episodeInFolder == true) { input.type = 3; //Episode Information is in Filename and Path } else if (episodeInFile == true && episodeInFolder == false) { input.type = 1; //Episode Information is in Filename } else if (episodeInFile == false && episodeInFolder == true) { input.type = 2; //Episode Information is in Path } else { input.type = 0; //Episode Information is neither in Filename nor Path } }
public void Check(EpisodeObject episode, bool preferFile, bool preferFolder) { checkForEpisodeInformation(episode); cutEpisode(episode, preferFile, preferFile); }
public CheckEpisodeName(EpisodeObject episode, bool preferFile, bool preferFolder) { Check(episode, preferFile, preferFolder); }