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); }
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(); }
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); } }
//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); }
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(); }