コード例 #1
0
        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
コード例 #2
0
        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
            }
        }
コード例 #3
0
        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
            }
        }
コード例 #4
0
 public void Check(EpisodeObject episode, bool preferFile, bool preferFolder)
 {
     checkForEpisodeInformation(episode);
     cutEpisode(episode, preferFile, preferFile);
 }
コード例 #5
0
 public CheckEpisodeName(EpisodeObject episode, bool preferFile, bool preferFolder)
 {
     Check(episode, preferFile, preferFolder);
 }