private void extractDisksFromXML(XPathNodeIterator nIter, XPathNavigator localNav, OMLSDKTitle newTitle) { SDKUtilities.DebugLine("[MyMoviesImporter] Scanning for Discs..."); SDKUtilities.DebugLine("[MyMoviesImporter] {0} entries found", nIter.Count); for (int i = 0; i < nIter.Count; i++) { bool isDoubleSided = (((string)GetChildNodesValue(localNav, "DoubleSided")).CompareTo("False") == 0) ? false : true; string discName = (string)GetChildNodesValue(localNav, "Name"); string sideAId = (string)GetChildNodesValue(localNav, "DiscIdSideA"); string sideALocation = (string)GetChildNodesValue(localNav, "LocationSideA"); string sideALocationType = (string)GetChildNodesValue(localNav, "LocationTypeSideA"); string changerSlot = (string)GetChildNodesValue(localNav, "ChangerSlot"); string sideBId = string.Empty; string sideBLocation = string.Empty; string sideBLocationType = string.Empty; if (isDoubleSided) { sideBId = (string)GetChildNodesValue(localNav, "DiscIdSideB"); sideBLocation = (string)GetChildNodesValue(localNav, "LocationSideB"); sideBLocationType = (string)GetChildNodesValue(localNav, "LocationTypeSideB"); } SDKUtilities.DebugLine("[MyMoviesImporter] Ok, I've collected some info... now we actually start looking for files"); IList <OMLSDKDisk> sideAdisks = GetDisksForLocation(sideALocation, sideALocationType); int j = 1; SDKUtilities.DebugLine("[MyMoviesImporter] Ok, we found {0} possible files", sideAdisks.Count); foreach (OMLSDKDisk disk in sideAdisks) { disk.Name = string.Format(@"Disk{0}", j++); newTitle.AddDisk(disk); } if (isDoubleSided) { SDKUtilities.DebugLine("[MyMoviesImporter] Whoa... this thing appears to be double-sided (old schooling it huh?)"); IList <OMLSDKDisk> sideBdisks = GetDisksForLocation(sideBLocation, sideBLocationType); SDKUtilities.DebugLine("[MyMoviesImporter] We found {0} disks on the B side", sideBdisks.Count); foreach (OMLSDKDisk disk in sideBdisks) { disk.Name = string.Format(@"Disk{0}", j++); newTitle.AddDisk(disk); } } localNav.MoveToNext("Disc", ""); } }
/// <summary> /// Merges the information from the Notes field with the DVD Profiler Disc data to create the Disk entries for the title /// </summary> private void MergeDiscInfo(OMLSDKTitle title, OMLSDKVideoFormat dvdProfilerVideoFormat, Dictionary <string, string> discs, string notes) { if (string.IsNullOrEmpty(notes)) { return; } var matches = filepathRegex.Matches(notes); int lastDiskNumber = 0; foreach (Match m in matches) { string discNumberString = m.Groups["discNumber"].Value; int discNumber = Convert.ToInt32(string.IsNullOrEmpty(discNumberString) ? "0" : discNumberString, CultureInfo.InvariantCulture); if (discNumber == 0) { discNumber = lastDiskNumber + 1; } string sideString = m.Groups["side"].Value; if (string.IsNullOrEmpty(sideString)) { sideString = "a"; } string description; string discKey = discNumber.ToString(CultureInfo.InvariantCulture) + sideString.ToLowerInvariant(); if (!discs.TryGetValue(discKey, out description)) { // TODO: I18N if (matches.Count == 1) { description = "Movie"; } else { description = "Disc " + discKey; } } string path = m.Groups["path"].Value; OMLSDKVideoFormat discVideoFormat = GetFormatFromExtension(Path.GetExtension(path), dvdProfilerVideoFormat); if (!string.IsNullOrEmpty(path)) { // validate that the path to the file/directory is valid if (!File.Exists(path) && !Directory.Exists(path)) { this.AddError("Invalid path \"" + path + "\" for movie \"" + title.Name + "\""); } } title.AddDisk(new OMLSDKDisk(description, path, discVideoFormat)); lastDiskNumber++; } }
public void GetMovies(string startFolder) { try { List <string> moviePaths = new List <string>(); List <string> dirList = new List <string>(); List <string> fileList = new List <string>(); GetSubFolders(startFolder, dirList); // the share or link may not exist nowbb if (Directory.Exists(startFolder)) { dirList.Add(startFolder); } foreach (string currentFolder in dirList) { SDKUtilities.DebugLine("DVDImporter: folder " + currentFolder); if (currentFolder.ToUpperInvariant().Contains("fanart".ToUpperInvariant())) { SDKUtilities.DebugLine("[DVDImporter] Skipping fanart directory"); } else { OMLSDKTitle dvd = GetDVDMetaData(currentFolder); string[] fileNames = null; try { fileNames = Directory.GetFiles(currentFolder); } catch { fileNames = null; } if (dvd != null) { // if any video files are found in the DVD folder assume they are trailers if (fileNames != null) { foreach (string video in fileNames) { string extension = Path.GetExtension(video).ToUpper(); if (Enum.IsDefined(typeof(OMLSDKVideoFormat), extension.ToUpperInvariant())) { foreach (OMLSDKVideoFormat format in Enum.GetValues(typeof(OMLSDKVideoFormat))) { if (Enum.GetName(typeof(OMLSDKVideoFormat), format).ToLowerInvariant() == extension) { dvd.AddTrailer(video); } } } } } AddTitle(dvd); }// found dvd else { if (fileNames != null && fileNames.Length > 0) { if (OMLEngine.Settings.OMLSettings.TreatFoldersAsTitles) { OMLSDKTitle newVideo = new OMLSDKTitle(); // Create the title name DirectoryInfo di = new DirectoryInfo(currentFolder); newVideo.Name = ""; if (OMLEngine.Settings.OMLSettings.AddParentFoldersToTitleName) { // If AddParentFolderToTitleName is true then check if the parent folder // Is the startfolder. If not add parent folder to name DirectoryInfo st = new DirectoryInfo(startFolder); if (st.Name != di.Parent.Name) { newVideo.Name = di.Parent.Name + " - "; } } newVideo.Name += (new DirectoryInfo(currentFolder)).Name; int diskNumber = 1; foreach (string video in fileNames) { try { string extension = Path.GetExtension(video).ToUpper().Substring(1); extension = extension.Replace("-", ""); if (Enum.IsDefined(typeof(OMLSDKVideoFormat), extension.ToUpperInvariant())) { OMLSDKDisk disk = new OMLSDKDisk(); disk.Path = video; disk.Format = (OMLSDKVideoFormat)Enum.Parse(typeof(OMLSDKVideoFormat), extension, true); disk.Name = string.Format("Disk {0}", diskNumber++); newVideo.AddDisk(disk); } } catch (Exception ex) { SDKUtilities.DebugLine("[DVDLibraryImporter] Problem importing file " + video + " : " + ex.Message); } } if (File.Exists(Path.Combine(currentFolder, "folder.jpg"))) { newVideo.FrontCoverPath = Path.Combine(currentFolder, "folder.jpg"); } if (newVideo.Disks.Count > 0) { // There is one or more valid disks for this title. Add it. //string temp = newVideo.BackDropFolder; // This initialises the fanart folder forcing a search for fanart AddTitle(newVideo); } } else { foreach (string video in fileNames) { try { string extension = Path.GetExtension(video).ToUpper().Substring(1); extension = extension.Replace("-", ""); if (Enum.IsDefined(typeof(OMLSDKVideoFormat), extension.ToUpperInvariant())) { // this isn't 100% safe since there are videoformats that don't map 1-1 to extensions OMLSDKVideoFormat videoFormat = (OMLSDKVideoFormat)Enum.Parse(typeof(OMLSDKVideoFormat), extension, true); OMLSDKTitle newVideo = new OMLSDKTitle(); newVideo.Name = GetSuggestedMovieName(Path.GetFileNameWithoutExtension(video)); OMLSDKDisk disk = new OMLSDKDisk(); disk.Path = video; disk.Name = "Disk 1"; disk.Format = videoFormat; string pathWithNoExtension = Path.GetDirectoryName(video) + "\\" + Path.GetFileNameWithoutExtension(video); if (File.Exists(pathWithNoExtension + ".jpg")) { newVideo.FrontCoverPath = pathWithNoExtension + ".jpg"; } else if (File.Exists(video + ".jpg")) { newVideo.FrontCoverPath = video + ".jpg"; } else if (File.Exists(Path.GetDirectoryName(video) + "\\folder.jpg")) { newVideo.FrontCoverPath = Path.GetDirectoryName(video) + "\\folder.jpg"; } newVideo.AddDisk(disk); //string temp = newVideo.BackDropFolder; // This initialises the fanart folder forcing a search for fanart AddTitle(newVideo); } } catch (Exception ex) { SDKUtilities.DebugLine("[DVDLibraryImporter] Problem importing file " + video + " : " + ex.Message); } } } } } } } // loop through the sub folders } catch (Exception ex) { SDKUtilities.DebugLine("[DVDLibraryImporter] An error occured: " + ex.Message); } }
public override void ProcessFile(string file) { XmlDocument xDoc = new XmlDocument(); xDoc.Load(file); XmlNodeList nodeList = xDoc.SelectNodes("//movielist/movie"); foreach (XmlNode movieNode in nodeList) { OMLSDKTitle newTitle = new OMLSDKTitle(); XPathNavigator nav = movieNode.CreateNavigator(); newTitle.MetadataSourceID = GetChildNodesValue(nav, "id"); if (nav.MoveToChild("coverfront", "")) { newTitle.FrontCoverPath = nav.Value; nav.MoveToParent(); } if (nav.MoveToChild("coverback", "")) { newTitle.BackCoverPath = nav.Value; nav.MoveToParent(); } if (nav.MoveToChild("country", "")) { if (nav.MoveToChild("displayname", "")) { newTitle.CountryOfOrigin = nav.Value; nav.MoveToParent(); } nav.MoveToParent(); } if (nav.MoveToChild("title", "")) { newTitle.Name = nav.Value; nav.MoveToParent(); } /*if (nav.MoveToChild("plot", "")) * { * newTitle.Synopsis = nav.Value; * nav.MoveToParent(); * }*/ // Fix from DVDJunkie // http://www.ornskov.dk/forum/index.php?topic=1605.msg12171#msg12171 if (nav.MoveToChild("plot", "")) { string plot = nav.Value; plot = plot.Replace("<B>", ""); plot = plot.Replace("<b>", ""); plot = plot.Replace("</B>", ""); plot = plot.Replace("</b>", ""); plot = plot.Replace("<I>", ""); plot = plot.Replace("<i>", ""); plot = plot.Replace("</I>", ""); plot = plot.Replace("</i>", ""); newTitle.Synopsis = plot; nav.MoveToParent(); } /*if (nav.MoveToChild("releasedate", "")) * { * XPathNavigator localNav = nav.CreateNavigator(); * //XmlNode rdYear = nav.SelectSingleNode("year"); * //XmlNode rdMonth = nav.SelectSingleNode("month"); * //XmlNode rdDay = nav.SelectSingleNode("day"); * * //if (rdYear != null && rdMonth != null && rdDay != null) * //{ * // DateTime rd = new DateTime(Int32.Parse(rdYear.InnerText), * // Int32.Parse(rdMonth.InnerText), * // Int32.Parse(rdDay.InnerText)); * * // if (rd != null) * // newTitle.ReleaseDate = rd; * //} * nav.MoveToParent(); * }*/ // Fix from DVDJunkie // http://www.ornskov.dk/forum/index.php?topic=1605.msg12171#msg12171 //hwh 12-7-09 if (nav.MoveToChild("releasedate", "")) { XPathNavigator localNav = nav.CreateNavigator(); string rdate = GetChildNodesValue(localNav, "date"); try { if (!string.IsNullOrEmpty(rdate)) { newTitle.ProductionYear = Convert.ToInt32(rdate); } } catch (FormatException) { } nav.MoveToParent(); } //hwh 12-7-09 if (nav.MoveToChild("dvdreleasedate", "")) { XPathNavigator localNav = nav.CreateNavigator(); string rdate = GetChildNodesValue(localNav, "date"); try { if (!string.IsNullOrEmpty(rdate)) { newTitle.ReleaseDate = DateTime.Parse(rdate); } } catch (ArgumentException) { } catch (FormatException) { } nav.MoveToParent(); } if (nav.MoveToChild("mpaarating", "")) { newTitle.ParentalRating = GetChildNodesValue(nav, "displayname"); nav.MoveToParent(); } if (nav.MoveToChild("upc", "")) { newTitle.UPC = nav.Value; nav.MoveToParent(); } if (nav.MoveToChild("runtimeminutes", "")) { //newTitle.Runtime = nav.ValueAsInt; newTitle.Runtime = ConvertStringToInt(nav.Value); nav.MoveToParent(); } if (nav.MoveToChild("genres", "")) { XPathNodeIterator genreIter = nav.SelectChildren("genre", ""); if (nav.MoveToFirstChild()) { XPathNavigator localNav = nav.CreateNavigator(); nav.MoveToParent(); for (int i = 0; i < genreIter.Count; i++) { newTitle.AddGenre(GetChildNodesValue(localNav, "displayname")); localNav.MoveToNext("genre", ""); } } nav.MoveToParent(); } if (nav.MoveToChild("cast", "")) { XPathNodeIterator starIter = nav.SelectChildren("star", ""); if (nav.MoveToFirstChild()) { XPathNavigator localNav = nav.CreateNavigator(); nav.MoveToParent(); for (int i = 0; i < starIter.Count; i++) { string role = GetChildNodesValue(localNav, "role"); XPathNavigator personNav = localNav.SelectSingleNode("person"); if (personNav != null) { string name = GetChildNodesValue(personNav, "displayname"); if (!string.IsNullOrEmpty(role) && !string.IsNullOrEmpty(name)) { newTitle.AddActingRole(name, role); } } localNav.MoveToNext("star", ""); } } nav.MoveToParent(); } if (nav.MoveToChild("crew", "")) { XPathNodeIterator crewMemberIter = nav.SelectChildren("crewmember", ""); if (nav.MoveToFirstChild()) { XPathNavigator localNav = nav.CreateNavigator(); nav.MoveToParent(); for (int i = 0; i < crewMemberIter.Count; i++) { string role = GetChildNodesValue(localNav, "role"); XPathNavigator cmNav = localNav.SelectSingleNode("person"); if (cmNav != null) { string name = GetChildNodesValue(cmNav, "displayname"); if (!string.IsNullOrEmpty(role) && !string.IsNullOrEmpty(name)) { switch (role.ToLower()) { case "director": newTitle.AddDirector(new OMLSDKPerson(name)); break; case "writer": newTitle.AddWriter(new OMLSDKPerson(name)); break; default: break; } } } localNav.MoveToNext("crewmember", ""); } } nav.MoveToParent(); } if (nav.MoveToChild("subtitles", "")) { XPathNodeIterator subtitleIter = nav.SelectChildren("subtitle", ""); if (nav.MoveToFirstChild()) { XPathNavigator localNav = nav.CreateNavigator(); nav.MoveToParent(); for (int i = 0; i < subtitleIter.Count; i++) { newTitle.AddSubtitle(GetChildNodesValue(localNav, "displayname")); localNav.MoveToNext("subtitle", ""); } } nav.MoveToParent(); } if (nav.MoveToChild("audios", "")) { XPathNodeIterator audioIter = nav.SelectChildren("audio", ""); if (nav.MoveToFirstChild()) { XPathNavigator localNav = nav.CreateNavigator(); nav.MoveToParent(); for (int i = 0; i < audioIter.Count; i++) { newTitle.AddAudioTrack(GetChildNodesValue(localNav, "displayname")); localNav.MoveToNext("audio", ""); } } nav.MoveToParent(); } if (nav.MoveToChild("studios", "")) { XPathNodeIterator studioIter = nav.SelectChildren("studio", ""); if (nav.MoveToFirstChild()) { XPathNavigator localNav = nav.CreateNavigator(); nav.MoveToParent(); for (int i = 0; i < studioIter.Count; i++) { newTitle.Studio = GetChildNodesValue(localNav, "displayname"); localNav.MoveToNext("studio", ""); } } nav.MoveToParent(); } if (nav.MoveToChild("links", "")) { XPathNodeIterator linkIter = nav.SelectChildren("link", ""); if (nav.MoveToFirstChild()) { XPathNavigator localNav = nav.CreateNavigator(); nav.MoveToParent(); for (int i = 0; i < linkIter.Count; i++) { string type = GetChildNodesValue(localNav, "urltype"); if (!string.IsNullOrEmpty(type)) { if (type.ToUpper().CompareTo("MOVIE") == 0) { string path = GetChildNodesValue(localNav, "url"); if (!string.IsNullOrEmpty(path)) { try { FileInfo fi = new FileInfo(path); if (fi.Exists) { string ext = fi.Extension.Substring(1); if (!string.IsNullOrEmpty(ext)) { if (IsSupportedFormat(ext)) { OMLSDKDisk disk = new OMLSDKDisk(); disk.Format = (OMLSDKVideoFormat)Enum.Parse(typeof(OMLSDKVideoFormat), ext, true); disk.Path = path; disk.Name = GetChildNodesValue(localNav, "description"); newTitle.AddDisk(disk); } } } } catch (Exception ex) { SDKUtilities.DebugLine("MovieCollectorzPlugin: {0}", ex); } } } } localNav.MoveToNext("link", ""); } } } if (ValidateTitle(newTitle)) { try { AddTitle(newTitle); } catch (Exception e) { SDKUtilities.DebugLine("[MovieCollectorzPlugin] Error adding row: " + e.Message); } } else { SDKUtilities.DebugLine("[MovieCollectorzPlugin] Error saving row"); } } }
public override void ProcessFile(string file) { OMLSDKTitle newTitle = new OMLSDKTitle(); String fPath = Path.GetDirectoryName(file); newTitle.Name = Path.GetFileNameWithoutExtension(file); IDictionary meta; DvrmsMetadataEditor editor = new DvrmsMetadataEditor(file); meta = editor.GetAttributes(); foreach (string item in meta.Keys) { MetadataItem attr = (MetadataItem)meta[item]; switch (item) { case DvrmsMetadataEditor.Title: string sTitle = (string)attr.Value; sTitle = sTitle.Trim(); if (!String.IsNullOrEmpty(sTitle)) { newTitle.Name = sTitle; } newTitle.ImporterSource = @"DVRMSImporter"; newTitle.MetadataSourceName = @"DVR-MS"; OMLSDKDisk disk = new OMLSDKDisk(); string ext = Path.GetExtension(file).Substring(1).Replace(@"-", @""); disk.Format = (OMLSDKVideoFormat)Enum.Parse(typeof(OMLSDKVideoFormat), ext, true); SDKUtilities.DebugLine("[DVRMSPlugin] Adding file: " + Path.GetFullPath(file)); disk.Path = Path.GetFullPath(file); disk.Name = @"Disk 1"; newTitle.AddDisk(disk); //newTitle.FileLocation = file; if (!String.IsNullOrEmpty(newTitle.AspectRatio)) { newTitle.AspectRatio = @"Widescreen"; } //string ext = Path.GetExtension(file).Substring(1).Replace(@"-", @""); //newTitle.VideoFormat = (VideoFormat)Enum.Parse(typeof(VideoFormat), ext, true); string cover = fPath + @"\" + Path.GetFileNameWithoutExtension(file) + @".jpg"; if (File.Exists(cover)) { SDKUtilities.DebugLine("[DVRMSPlugin] Setting CoverArt: " + Path.GetFullPath(cover)); newTitle.FrontCoverPath = Path.GetFullPath(cover); //newTitle.FrontCoverPath = cover; } else { SDKUtilities.DebugLine("[DVRMSPlugin] No coverart found"); } break; case DvrmsMetadataEditor.MediaOriginalBroadcastDateTime: string sDT = (string)attr.Value; if (!String.IsNullOrEmpty(sDT)) { DateTime dt; if (DateTime.TryParse(sDT, out dt)) { newTitle.ReleaseDate = dt; } } break; case DvrmsMetadataEditor.Genre: if (!String.IsNullOrEmpty((string)attr.Value)) { string sGenre = (string)attr.Value; string[] gen = sGenre.Split(','); newTitle.Genres.Clear(); foreach (string genre in gen) { string uGenre = genre.ToUpper().Trim(); if (String.IsNullOrEmpty(uGenre)) { continue; } if (uGenre.StartsWith(@"MOVIE")) { continue; } uGenre = genre.Trim(); newTitle.AddGenre(uGenre); } } break; case DvrmsMetadataEditor.Duration: Int64 rTime = (long)attr.Value; rTime = rTime / 600 / 1000000; newTitle.Runtime = (int)rTime; break; case DvrmsMetadataEditor.ParentalRating: if (!String.IsNullOrEmpty((string)attr.Value)) { newTitle.ParentalRating = (string)attr.Value; } break; case DvrmsMetadataEditor.Credits: string persona = (string)attr.Value; persona += @";;;;"; string[] credits = persona.Split(';'); string[] cast = credits[0].Split('/'); foreach (string nm in cast) { if (!String.IsNullOrEmpty(nm)) { newTitle.AddActingRole(nm, ""); } } string[] dirs = credits[1].Split('/'); if (dirs.Length > 0) { if (!String.IsNullOrEmpty(dirs[0])) { string nm = dirs[0]; newTitle.AddDirector(new OMLSDKPerson(nm)); } } break; case DvrmsMetadataEditor.SubtitleDescription: newTitle.Synopsis = (string)attr.Value; break; } attr = null; } if (ValidateTitle(newTitle)) { try { if (String.IsNullOrEmpty(newTitle.Name)) { newTitle.Name = Path.GetFileNameWithoutExtension(file); newTitle.ImporterSource = @"DVRMSImporter"; newTitle.MetadataSourceName = @"DVR-MS"; OMLSDKDisk disk = new OMLSDKDisk(); disk.Name = @"Disk 1"; disk.Path = file; //newTitle.FileLocation = file; string ext = Path.GetExtension(file).Substring(1).Replace(@"-", @""); //newTitle.VideoFormat = (VideoFormat)Enum.Parse(typeof(VideoFormat), ext, true); disk.Format = (OMLSDKVideoFormat)Enum.Parse(typeof(OMLSDKVideoFormat), ext, true); newTitle.AddDisk(disk); string cover = fPath + @"\" + Path.GetFileNameWithoutExtension(file) + @".jpg"; if (File.Exists(Path.GetFullPath(cover))) { SDKUtilities.DebugLine("[DVRMSPlugin] Setting CoverArt: " + Path.GetFullPath(cover)); newTitle.FrontCoverPath = cover; } else { SDKUtilities.DebugLine("[DVRMSPlugin] No coverart found"); } } if (String.IsNullOrEmpty(newTitle.AspectRatio)) { newTitle.AspectRatio = @"Widescreen"; } if (String.IsNullOrEmpty(newTitle.ParentalRating)) { newTitle.ParentalRating = @"--"; } AddTitle(newTitle); } catch (Exception e) { Trace.WriteLine("[DVRMSPlugin] Error adding row: " + e.Message); } } else { Trace.WriteLine("[DVRMSPlugin] Error saving row"); } }
public bool ValidateTitle(OMLSDKTitle title_to_validate, string file) { SDKUtilities.DebugLine("[MyMoviesImporter] This is the part where we validate (or not) your shiny new title, wouldn't want you to drive off the lot with it untested now would we"); if (title_to_validate.Disks.Count == 0) { SDKUtilities.DebugLine("[MyMoviesImporter] Whoa... you dont appear to have any discs... lets double check that"); string directoryName = Path.GetDirectoryName(file); if (Directory.Exists(directoryName)) { if (SDKUtilities.IsBluRay(directoryName)) { SDKUtilities.DebugLine("[MyMoviesImporter] its a bluray, adding a new disk"); title_to_validate.AddDisk(new OMLSDKDisk("Disk1", directoryName, OMLSDKVideoFormat.BLURAY)); return(true); } if (SDKUtilities.IsHDDVD(directoryName)) { SDKUtilities.DebugLine("[MyMoviesImporter] its an hddvd, adding a new disk"); title_to_validate.AddDisk(new OMLSDKDisk("Disk1", directoryName, OMLSDKVideoFormat.HDDVD)); return(true); } if (SDKUtilities.IsDVD(directoryName)) { SDKUtilities.DebugLine("[MyMoviesImporter] its a dvd, adding a new disk"); title_to_validate.AddDisk(new OMLSDKDisk("Disk1", directoryName, OMLSDKVideoFormat.DVD)); return(true); } string[] files = Directory.GetFiles(directoryName); SDKUtilities.DebugLine("[MyMoviesImporter] You have {0} files in the current location {1}", files.Length, directoryName); /* patch from KingManon to limit files only to those of valid file types */ string localExt; List <string> newFiles = new List <string>(); List <string> allowedExtensions = new List <string>(Enum.GetNames(typeof(OMLSDKVideoFormat))); foreach (string singleFile in files) { localExt = Path.GetExtension(singleFile).Substring(1); if (allowedExtensions.Contains(localExt.ToUpper())) { newFiles.Add(singleFile); } } files = newFiles.ToArray(); Array.Sort(files); for (int i = 0; i < files.Length; i++) { string ext = Path.GetExtension(files[i]).Substring(1); try { if (new List <string>(Enum.GetNames(typeof(OMLSDKVideoFormat))).Contains(ext.ToUpper())) { OMLSDKVideoFormat format; try { SDKUtilities.DebugLine("[MyMoviesImporter] Checking file for format {0}", files[i]); format = (OMLSDKVideoFormat)Enum.Parse(typeof(OMLSDKVideoFormat), ext, true); OMLSDKDisk disk = new OMLSDKDisk(); disk.Name = string.Format("Disk{0}", i + 1); disk.Path = Path.Combine(directoryName, files[i]); disk.Format = format; title_to_validate.AddDisk(disk); } catch (Exception) { AddError("[MyMoviesImporter] Unable to determine format for extension: {0}", ext); } } } catch { SDKUtilities.DebugLine("[MyMoviesImporter] Yeah, no extention on file ({0}), skip it!", files[i]); // didnt get the extension, its not a valid file, skip it } } if (title_to_validate.Disks.Count == 0) { SDKUtilities.DebugLine("[MyMoviesImporter] No disks found on the title, we'll skip it"); return(false); } } } return(true); }