Ejemplo n.º 1
0
        private void mpTVSeries_OnClick(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtFilename.Text))
            {
                return;
            }
            if (!File.Exists(txtFilename.Text))
            {
                return;
            }

            // Use original tags as base with latest changes from GUI
            MatroskaTags tag = MatroskaLoader.Clone(originalTag);

            tag.Series = UpdateTagFromGUI(tag.Series);

            // Update from TVSeries
            try
            {
                MPTVSeriesImporter importer = new MPTVSeriesImporter();
                tag.Series = importer.UpdateTags(tag.Series, txtFilename.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }

            UpdateGUI(tag.Series);
        }
Ejemplo n.º 2
0
        private void WriteXmlTags(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            WorkerArgs       args   = e.Argument as WorkerArgs;

            var filteredfileNames       = Directory.GetFiles(args.Directory, "*.*", SearchOption.AllDirectories);
            MPTVSeriesImporter importer = new MPTVSeriesImporter();

            importer.OpenConnection();

            int current = 0;
            int total   = filteredfileNames.Count();

            foreach (var file in filteredfileNames)
            {
                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                    break;
                }

                current++;
                worker.ReportProgress(100 * current / total);

                // Check only video files
                if (!SupportedFiles.IsFileSupportedVideo(file))
                {
                    continue;
                }

                // build xml file name
                string xmlFile = GetXmlFilename(file);

                // init document
                MatroskaTags tag = new MatroskaTags();

                // Read MKV tags, if existing should be reused
                if (App.Config.BasedOnExistingTags)
                {
                    tag = MatroskaLoader.ReadTag(file);
                }

                // update tags from MP-TVSeries
                tag.Series = importer.UpdateTags(tag.Series, file);

                string logText = File.Exists(xmlFile) ? "XML updated: " : "XML created: ";
                MatroskaLoader.WriteTagToXML(tag, xmlFile);
                worker.ReportProgress(100 * current / total, new FileBasedLogEntry(xmlFile, logText));
            }

            importer.CloseConnection();
        }
Ejemplo n.º 3
0
        public Configuration()
        {
            MPTVSeriesDatabasePath    = MPTVSeriesImporter.GetDefaultDatabasePath();
            SelectedTvDbLanguage      = TvdbLanguage.DefaultLanguage;
            SelectedTMDBLanguageValue = MovieDbApiV3.DefaultLanguage;

            OptionalSeriesTags = new Dictionary <string, TagSetting>();

            foreach (TagSetting tag in Consts.SeriesTags)
            {
                OptionalSeriesTags.Add(tag.ID, tag);
            }
        }
Ejemplo n.º 4
0
        //public ICommand BrowseTvSeriesDbCommand
        //{
        //  get
        //  {
        //    if (browseTvSeriesDbCommand == null)
        //      browseTvSeriesDbCommand = new DelegateCommand(new Action(BrowseTvSeriesDb),
        //          new Func<bool>(BrowseTvSeriesDbCanExecute));
        //    return browseTvSeriesDbCommand;
        //  }
        //}

        #endregion
        //  public Configuration Config { get; set; }
        //  public PersonViewModel()
        //  {
        //      //This data will load as the default person from the model attached to
        //      //the view
        //      Person = new PersonModel
        //{ FirstName = "John", LastName = "Doe", Age = 999 };
        //  }

        #region Constructors

        public ConfigurationViewModel()
        {
            SettingsVisible        = Visibility.Collapsed;
            MPTVSeriesDatabasePath = MPTVSeriesImporter.GetDefaultDatabasePath();

            if (OptionalSeriesTags == null)
            {
                OptionalSeriesTags = new ObservableCollection <TagSetting>();

                foreach (TagSetting tag in Consts.SeriesTags)
                {
                    OptionalSeriesTags.Add(tag);
                }
            }

            LoadSettings(null);
        }
Ejemplo n.º 5
0
        private void WriteMkvTags(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker   = sender as BackgroundWorker;
            WorkerArgs       args     = e.Argument as WorkerArgs;
            DirectoryInfo    di       = new DirectoryInfo(args.Directory);
            List <FileInfo>  mkvFiles = new List <FileInfo>();

            mkvFiles.AddRange(di.GetFiles("*.mkv", SearchOption.AllDirectories));
            mkvFiles.AddRange(di.GetFiles("*.mk3d", SearchOption.AllDirectories));

            MPTVSeriesImporter importer = new MPTVSeriesImporter();

            importer.OpenConnection();

            int current = 0;
            int total   = mkvFiles.Count;

            foreach (FileInfo mkvFile in mkvFiles)
            {
                string file = mkvFile.FullName;
                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                    break;
                }

                current++;
                worker.ReportProgress(100 * current / total);

                // init document
                MatroskaTags tag = new MatroskaTags();

                // Read MKV tags, if existing should be reused
                if (App.Config.BasedOnExistingTags)
                {
                    tag = MatroskaLoader.ReadTag(file);
                }

                // update tags from MP-TVSeries
                tag.Series = importer.UpdateTags(tag.Series, file);

                try
                {
                    int exitCode = MatroskaLoader.WriteTagToMatroska(mkvFile.FullName, tag);

                    if (exitCode == 0)
                    {
                        worker.ReportProgress(100 * current / total, new FileBasedLogEntry(mkvFile.FullName, "MKV updated: "));
                        if (args.DeleteXmlAfterMkvUpdate)
                        {
                            // build xml file name
                            string xmlFile = GetXmlFilename(file);
                            File.Delete(xmlFile);
                        }
                    }
                    else
                    {
                        worker.ReportProgress(100 * current / total,
                                              new FileBasedLogEntry(mkvFile.FullName,
                                                                    string.Format(
                                                                        "MKV updated with MKVPropEdit exit code = {0} file :",
                                                                        exitCode)));
                    }
                }
                catch (Exception ex)
                {
                    worker.ReportProgress(100 * current / total, new FileBasedLogEntry(mkvFile.FullName, ex.Message));
                }
            }

            importer.CloseConnection();
        }