Exemplo n.º 1
0
        /// <summary>
        /// Loads the specified output name.
        /// </summary>
        /// <param name="outputName">
        /// Name of the output.
        /// </param>
        public static void Load(OutputName outputName)
        {
            switch (outputName)
            {
            case OutputName.MovieDb:
                LoadMovieDB();
                break;

            case OutputName.MediaPathDb:
                LoadMediaPathDb();
                break;

            case OutputName.MovieSets:
                LoadMovieSets();
                break;

            case OutputName.TvDb:
                LoadTvDB();
                break;

            case OutputName.ScanSeriesPick:
                LoadScanSeriesPick();
                break;

            case OutputName.All:
                LoadMovieDB();
                LoadMovieSets();
                LoadMediaPathDb();
                MasterMediaDBFactory.PopulateMasterMovieMediaDatabase();
                LoadTvDB();
                LoadScanSeriesPick();
                MasterMediaDBFactory.PopulateMasterTvMediaDatabase();
                break;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Handles the DoWork event of the bgw control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.ComponentModel.DoWorkEventArgs"/> instance containing the event data.</param>
        private void bgw_DoWork(object sender, DoWorkEventArgs e)
        {
            this.bgw.ReportProgress(17, "Loading Media Path Database");
            DatabaseIOFactory.Load(DatabaseIOFactory.OutputName.MediaPathDb);

            this.bgw.ReportProgress(34, "Loading Movie Database");
            DatabaseIOFactory.Load(DatabaseIOFactory.OutputName.MovieDb);

            this.bgw.ReportProgress(51, "Loading Media Sets Database");
            DatabaseIOFactory.Load(DatabaseIOFactory.OutputName.MovieSets);

            this.bgw.ReportProgress(68, "Loading Tv Database");
            DatabaseIOFactory.Load(DatabaseIOFactory.OutputName.TvDb);

            this.bgw.ReportProgress(80, "Loading Media Path Database");
            DatabaseIOFactory.Load(DatabaseIOFactory.OutputName.ScanSeriesPick);

            this.bgw.ReportProgress(88, "Populating Movie Media Database");
            MasterMediaDBFactory.PopulateMasterMovieMediaDatabase();

            this.bgw.ReportProgress(96, "Populating TV Media Database");
            MasterMediaDBFactory.PopulateMasterTvMediaDatabase();

            this.bgw.ReportProgress(97, "Validating Sets");
            MovieSetManager.ValidateSets();

            this.bgw.ReportProgress(100, "Done.");
        }
Exemplo n.º 3
0
        /// <summary>
        /// The do import scan.
        /// </summary>
        public static void DoImportScan()
        {
            SeriesNameList = new BindingList <SeriesListModel>();
            Scan           = new SortedDictionary <string, ScanSeries>();

            // Get file list
            var filters = Get.InOutCollection.VideoExtentions;

            var paths = MediaPathDBFactory.GetMediaPathTvUnsorted();

            var filteredFiles = (from file in paths
                                 let pathAndFileName = Path.GetExtension(file.PathAndFileName).ToLower()
                                                       where filters.Any(filter => pathAndFileName.ToLower() == "." + filter.ToLower())
                                                       select file.PathAndFileName).ToList();

            // Process each file and add to ScanDB);
            foreach (var f in filteredFiles)
            {
                var episodeDetails = GetEpisodeDetails(f);

                if (episodeDetails.TvMatchSuccess)
                {
                    AddScanResult(episodeDetails);
                }
                else
                {
                    NotCatagorized.Add(new ScanNotCatagorized {
                        FilePath = f
                    });
                }
            }

            MasterMediaDBFactory.PopulateMasterTvMediaDatabase();
        }
Exemplo n.º 4
0
 /// <summary>
 /// Merges the import database with main movie database
 /// </summary>
 public static void MergeImportDatabaseWithMain()
 {
     ValidateDatabaseExistance();
     MovieDBFactory.MergeWithDatabase(ImportDatabase);
     MasterMediaDBFactory.PopulateMasterMovieMediaDatabase();
     MovieDBFactory.MergeWithDatabase(ImportDuplicatesDatabase, MovieDBFactory.MovieDBTypes.Duplicates);
     MovieSetManager.ScanForSetImages();
 }
Exemplo n.º 5
0
 /// <summary>
 /// Merges the import database with main movie database
 /// </summary>
 public static void MergeImportDatabaseWithMain()
 {
     MovieDBFactory.MergeWithDatabase(ImportDatabase);
     MasterMediaDBFactory.PopulateMasterMovieMediaDatabase();
     MovieSetManager.ScanForSetImages();
 }
Exemplo n.º 6
0
        /// <summary>
        /// Process a file rename
        /// </summary>
        /// <param name="pathFrom">
        /// Path from.
        /// </param>
        /// <param name="renameTo">
        /// Rename too.
        /// </param>
        /// <returns>
        /// The remained path.
        /// </returns>
        public static string DoRename(string pathFrom, string renameTo)
        {
            renameTo = FileSystemCharChange.To(renameTo, FileSystemCharChange.ConvertArea.Tv);

            var fileName = Path.GetFileNameWithoutExtension(pathFrom);
            var filePath = Path.GetDirectoryName(pathFrom);

            // Bluray))
            if (MovieNaming.IsBluRay(pathFrom))
            {
                string folderPathFrom = MovieNaming.GetBluRayPath(pathFrom) + MovieNaming.GetBluRayName(pathFrom);
                string folderPathTo   = MovieNaming.GetBluRayPath(pathFrom) + renameTo;

                if (folderPathFrom != folderPathTo)
                {
                    try
                    {
                        Directory.Move(folderPathFrom, folderPathTo);
                        MasterMediaDBFactory.ChangeTvFileName(folderPathFrom, folderPathTo);
                        return(folderPathTo);
                    }
                    catch
                    {
                        return(string.Empty);
                    }
                }

                return(folderPathFrom);
            }

            // DVD
            if (MovieNaming.IsDVD(pathFrom))
            {
                string folderPathFrom = MovieNaming.GetDvdPath(pathFrom) + MovieNaming.GetDvdName(pathFrom);
                string folderPathTo   = MovieNaming.GetDvdPath(pathFrom) + renameTo;

                if (folderPathFrom != folderPathTo)
                {
                    try
                    {
                        Directory.Move(folderPathFrom, folderPathTo);
                        MasterMediaDBFactory.ChangeTvFileName(folderPathFrom, folderPathTo);
                        return(folderPathTo);
                    }
                    catch
                    {
                        return(string.Empty);
                    }
                }

                return(folderPathFrom);
            }


            // File
            string pathTo = Path.GetDirectoryName(pathFrom) + Path.DirectorySeparatorChar + renameTo +
                            Path.GetExtension(pathFrom);

            foreach (var subExt in Get.InOutCollection.SubtitleExtentions)
            {
                var possibleFileName = filePath + Path.DirectorySeparatorChar + fileName + "." + subExt;

                if (File.Exists(possibleFileName))
                {
                    try
                    {
                        File.Move(possibleFileName, filePath + Path.DirectorySeparatorChar + renameTo + "." + subExt);
                    }
                    catch
                    {
                        Log.WriteToLog(LogSeverity.Error, 0, "Could not rename", possibleFileName + " -> " + filePath + Path.DirectorySeparatorChar + renameTo + subExt);
                    }
                }
            }

            try
            {
                File.Move(pathFrom, pathTo);
                MasterMediaDBFactory.ChangeTvFileName(pathFrom, pathTo);
            }
            catch
            {
                return(pathFrom);
            }

            return(pathTo);
        }