コード例 #1
0
ファイル: csharp.cs プロジェクト: lucaslin/CodeClassifier
        private int ExecuteSecondPass(AnalyseVideo analyseVideo, ParallelLoopState loopState, int currentPass)
        {
            //pass2 (remove prefix / suffixes)
            if (analyseVideo.Candidates.Count == 0 || analyseVideo.MatchPercentage < Constants.GREAT_MATCH_FOUND_TRESHOLD)
            {
                string fileNameGuess   = analyseVideo.GetMainFileNameGuess();
                string folderNameGuess = analyseVideo.GetMainFolderNameGuess();

                string fileName = Path.GetFileNameWithoutExtension(analyseVideo.Video.Files[0].Path);
                if (fileName != null)
                {
                    List <string> fileNameGuesses = VideoTitleExtractor.GetTitleGuessesFromString(fileName.ToLower(), true);
                    analyseVideo.AddTitleGuesses(fileNameGuesses);
                }
                var directoryName = Path.GetDirectoryName(analyseVideo.Video.Files[0].Path);
                if (directoryName != null)
                {
                    string        folderName        = directoryName.Split(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar).Last().ToLower();
                    List <string> folderNameGuesses = VideoTitleExtractor.GetTitleGuessesFromString(folderName, true);
                    analyseVideo.AddTitleGuesses(folderNameGuesses);
                }

                FillCandidates(analyseVideo, fileNameGuess, folderNameGuess);
            }
            analyseVideo.HandledTitleGuesses();
            ExecuteAfterPass(currentPass);

            //if (CancellationPending)
            //{
            //	e.Cancel = true;
            //	return;
            //}
            return(currentPass);
        }