From: <du...@us...> - 2007-03-24 12:57:03
|
Revision: 217 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=217&view=rev Author: dukus Date: 2007-03-24 05:56:46 -0700 (Sat, 24 Mar 2007) Log Message: ----------- First attempt to implement a support for DVDProfiler Modified Paths: -------------- trunk/plugins/MyFilms/MesFilms.cs trunk/plugins/MyFilms/MesFilms.csproj trunk/plugins/MyFilms/MesFilms.suo trunk/plugins/MyFilms/MesFilmsSetup.Designer.cs trunk/plugins/MyFilms/MesFilmsSetup.cs Added Paths: ----------- trunk/plugins/MyFilms/CatalogConverter.cs Added: trunk/plugins/MyFilms/CatalogConverter.cs =================================================================== --- trunk/plugins/MyFilms/CatalogConverter.cs (rev 0) +++ trunk/plugins/MyFilms/CatalogConverter.cs 2007-03-24 12:56:46 UTC (rev 217) @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Xml; + +namespace MesFilms +{ + class CatalogConverter + { + public Dictionary<string, string> ProfilerDict; + + public CatalogConverter() + { + ProfilerDict = new Dictionary<string, string>(); + ProfilerDict.Add("Title", "OriginalTitle"); + ProfilerDict.Add("SortTitle", "TranslatedTitle"); + ProfilerDict.Add("SortTitle1", "FormattedTitle"); + ProfilerDict.Add("CollectionNumber", "Number"); + ProfilerDict.Add("Rating", "Rating"); + ProfilerDict.Add("Year", "Year"); + ProfilerDict.Add("RunningTime", "Length"); + ProfilerDict.Add("Actors", "Actors"); + ProfilerDict.Add("Genres", "Category"); + ProfilerDict.Add("Credits", "Director"); + ProfilerDict.Add("Overview", "Description"); + ProfilerDict.Add("Picture", "Picture"); + } + + public string ConvertProfiler(string source) + { + string destFile = Path.GetTempPath()+@"\"+"AntTempFile.xml"; + XmlTextWriter destXml = new XmlTextWriter(destFile,Encoding.Default); + destXml.Formatting = Formatting.Indented; + destXml.WriteStartDocument(); + //destXml.WriteStartElement("AntMovieCatalog"); + //destXml.WriteAttributeString("Format","35"); + //destXml.WriteAttributeString("Version", "3.5.0 (2005-05-29)"); + //destXml.WriteAttributeString("Date", "5/4/2006 7:25:51 PM"); + //destXml.WriteEndElement(); + destXml.WriteStartElement("Catalog"); + destXml.WriteElementString("Properties", ""); + destXml.WriteStartElement("Contents"); + try + { + XmlDocument doc = new XmlDocument(); + doc.Load(source); + XmlNodeList dvdList = doc.DocumentElement.SelectNodes("/Collection/DVD"); + foreach (XmlNode nodeDVD in dvdList) + { + destXml.WriteStartElement("Movie"); + XmlNode nodeID = nodeDVD.SelectSingleNode("ID"); + XmlNode nodeNumber = nodeDVD.SelectSingleNode("CollectionNumber"); + XmlNode nodeTitle = nodeDVD.SelectSingleNode("Title"); + XmlNode nodeRating = nodeDVD.SelectSingleNode("Rating"); + XmlNode nodeYear = nodeDVD.SelectSingleNode("ProductionYear"); + XmlNode nodeDuration = nodeDVD.SelectSingleNode("RunningTime"); + XmlNode nodeOverview = nodeDVD.SelectSingleNode("Overview"); + + string genre = String.Empty; + XmlNodeList genreList = nodeDVD.SelectNodes("Genres/Genre"); + foreach (XmlNode nodeGenre in genreList) + { + if (genre.Length > 0) genre += " / "; + genre += nodeGenre.InnerText; + } + string cast = String.Empty; + XmlNodeList actorsList = nodeDVD.SelectNodes("Actors/Actor"); + foreach (XmlNode nodeActor in actorsList) + { + string firstname = String.Empty; + string lastname = String.Empty; + string role = String.Empty; + XmlNode nodeFirstName = nodeActor.SelectSingleNode("FirstName"); + XmlNode nodeLastName = nodeActor.SelectSingleNode("LastName"); + XmlNode nodeRole = nodeActor.SelectSingleNode("Role"); + if (nodeFirstName != null && nodeFirstName.InnerText != null) firstname = nodeFirstName.InnerText; + if (nodeLastName != null && nodeLastName.InnerText != null) lastname = nodeLastName.InnerText; + if (nodeRole != null && nodeRole.InnerText != null) role = nodeRole.InnerText; + string line = String.Format("{0} {1} as {2}\n", firstname, lastname, role); + cast += line; + } + + string credits = String.Empty; + XmlNodeList creditsList = nodeDVD.SelectNodes("Credits/Credit"); + foreach (XmlNode nodeCredit in creditsList) + { + string firstname = String.Empty; + string lastname = String.Empty; + XmlNode nodeFirstName = nodeCredit.SelectSingleNode("FirstName"); + XmlNode nodeLastName = nodeCredit.SelectSingleNode("LastName"); + XmlNode nodeType = nodeCredit.SelectSingleNode("CreditSubtype"); + if (nodeType != null && nodeType.InnerText != null && nodeType.InnerText == "Director") + { + if (credits.Length > 0) credits += " / "; + if (nodeFirstName != null && nodeFirstName.InnerText != null) firstname = nodeFirstName.InnerText; + if (nodeLastName != null && nodeLastName.InnerText != null) lastname = nodeLastName.InnerText; + credits += String.Format("{0} {1}", firstname, lastname); + } + } + //rec.Image = folderName + @"\" + nodeID.InnerText.Trim() + "f.jpg"; + if (nodeNumber != null && nodeNumber.InnerText != null) + WriteAntAtribute(destXml,"CollectionNumber",nodeNumber.InnerText); + else + WriteAntAtribute(destXml, "CollectionNumber", nodeNumber.InnerText); + WriteAntAtribute(destXml, "Title", nodeTitle.InnerText); + WriteAntAtribute(destXml, "SortTitle", nodeTitle.InnerText); + WriteAntAtribute(destXml, "SortTitle1", nodeTitle.InnerText); + WriteAntAtribute(destXml, "Rating","0" ); + WriteAntAtribute(destXml, "Year", nodeYear.InnerText); + WriteAntAtribute(destXml, "RunningTime", nodeDuration.InnerText); + WriteAntAtribute(destXml, "Genres", genre); + WriteAntAtribute(destXml, "Credits", credits); + WriteAntAtribute(destXml, "Actors", cast); + WriteAntAtribute(destXml, "Picture", nodeID.InnerText.Trim() + "f.jpg"); + if (nodeOverview != null && nodeOverview.InnerText != null) + WriteAntAtribute(destXml, "Overview", nodeOverview.InnerText); + else + WriteAntAtribute(destXml, "Overview", ""); + + destXml.WriteEndElement(); + } + + } + catch + { + return""; + } + destXml.WriteEndElement(); + destXml.WriteEndElement(); + destXml.Close(); + return destFile; + } + + private void WriteAntAtribute(XmlTextWriter tw,string key, string value) + { + string at=""; + if (ProfilerDict.TryGetValue(key, out at)) + { + tw.WriteAttributeString(at, value); + } + } + } + +} Modified: trunk/plugins/MyFilms/MesFilms.cs =================================================================== --- trunk/plugins/MyFilms/MesFilms.cs 2007-03-24 10:39:53 UTC (rev 216) +++ trunk/plugins/MyFilms/MesFilms.cs 2007-03-24 12:56:46 UTC (rev 217) @@ -1111,6 +1111,15 @@ StrViewItem2 = xmlreader.GetValueAsString(CurrentConfig, "AntViewItem2", ""); StrViewText2 = xmlreader.GetValueAsString(CurrentConfig, "AntViewText2", ""); StrFileXml = xmlreader.GetValueAsString(CurrentConfig, "AntCatalog", ""); + switch (xmlreader.GetValueAsString(CurrentConfig, "CatalogType", "")) + { + case "0": + break; + case "1": + CatalogConverter cv = new CatalogConverter(); + StrFileXml = cv.ConvertProfiler(StrFileXml); + break; + } StrPathImg = xmlreader.GetValueAsString(CurrentConfig, "AntPicture", ""); StrSelect = xmlreader.GetValueAsString(CurrentConfig, "StrSelect", ""); StrActors = xmlreader.GetValueAsString(CurrentConfig, "StrActors", ""); Modified: trunk/plugins/MyFilms/MesFilms.csproj =================================================================== --- trunk/plugins/MyFilms/MesFilms.csproj 2007-03-24 10:39:53 UTC (rev 216) +++ trunk/plugins/MyFilms/MesFilms.csproj 2007-03-24 12:56:46 UTC (rev 217) @@ -63,6 +63,7 @@ <DependentUpon>AntMovieCatalog.xsd</DependentUpon> </Compile> <Compile Include="AssemblyInfo.cs" /> + <Compile Include="CatalogConverter.cs" /> <Compile Include="CString.cs" /> <Compile Include="MesFilms.cs" /> <Compile Include="MesFilmsDetail.cs" /> Modified: trunk/plugins/MyFilms/MesFilms.suo =================================================================== (Binary files differ) Modified: trunk/plugins/MyFilms/MesFilmsSetup.Designer.cs =================================================================== --- trunk/plugins/MyFilms/MesFilmsSetup.Designer.cs 2007-03-24 10:39:53 UTC (rev 216) +++ trunk/plugins/MyFilms/MesFilmsSetup.Designer.cs 2007-03-24 12:56:46 UTC (rev 217) @@ -155,6 +155,8 @@ this.Config_Name = new System.Windows.Forms.ComboBox(); this.label12 = new System.Windows.Forms.Label(); this.groupBox7 = new System.Windows.Forms.GroupBox(); + this.label13 = new System.Windows.Forms.Label(); + this.CatalogType = new System.Windows.Forms.ComboBox(); this.ButSave = new System.Windows.Forms.Button(); this.groupBox8 = new System.Windows.Forms.GroupBox(); this.View_Dflt_Item = new System.Windows.Forms.ComboBox(); @@ -176,9 +178,9 @@ this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(7, 22); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(144, 13); + this.label1.Size = new System.Drawing.Size(93, 13); this.label1.TabIndex = 0; - this.label1.Text = "Ant Movie Catalog File (XML)"; + this.label1.Text = "Catalog File (XML)"; // // MesFilmsCat // @@ -223,9 +225,9 @@ this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(7, 48); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(119, 13); + this.label2.Size = new System.Drawing.Size(100, 13); this.label2.TabIndex = 3; - this.label2.Text = "Ant Picture Path (IMG) "; + this.label2.Text = "Picture Path (IMG) "; // // ButQuit // @@ -741,6 +743,8 @@ // // groupBox7 // + this.groupBox7.Controls.Add(this.label13); + this.groupBox7.Controls.Add(this.CatalogType); this.groupBox7.Controls.Add(this.ButSave); this.groupBox7.Controls.Add(this.groupBox8); this.groupBox7.Controls.Add(this.ButDelet); @@ -772,6 +776,28 @@ this.groupBox7.TabStop = false; this.groupBox7.Text = "Config Infos"; // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(490, 22); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(70, 13); + this.label13.TabIndex = 42; + this.label13.Text = "Catalog Type"; + // + // CatalogType + // + this.CatalogType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CatalogType.FormattingEnabled = true; + this.CatalogType.Items.AddRange(new object[] { + "Ant Movie Catalog", + "DVD Profiler"}); + this.CatalogType.Location = new System.Drawing.Point(566, 21); + this.CatalogType.Name = "CatalogType"; + this.CatalogType.Size = new System.Drawing.Size(235, 21); + this.CatalogType.TabIndex = 41; + this.CatalogType.SelectedIndexChanged += new System.EventHandler(this.CatalogType_SelectedIndexChanged); + // // ButSave // this.ButSave.Location = new System.Drawing.Point(496, 432); @@ -934,6 +960,8 @@ private ComboBox AntFilterComb; private ComboBox AntFilterSign2; private TextBox TitleDelim; + private Label label13; + private ComboBox CatalogType; } } \ No newline at end of file Modified: trunk/plugins/MyFilms/MesFilmsSetup.cs =================================================================== --- trunk/plugins/MyFilms/MesFilmsSetup.cs 2007-03-24 10:39:53 UTC (rev 216) +++ trunk/plugins/MyFilms/MesFilmsSetup.cs 2007-03-24 12:56:46 UTC (rev 217) @@ -53,7 +53,7 @@ AntItem1.Items.Add("(none)"); AntItem2.Items.Add("(none)"); AntItem3.Items.Add("(none)"); - + CatalogType.SelectedIndex = 0; foreach (DataColumn dc in ds.Movie.Columns) { // if (dc.Expression.Equals("")) @@ -272,7 +272,7 @@ if (MyFilms_xmlreader.GetValueAsString("MyFilms", "Default_Config", "") == Config_Name.Text) MyFilms_xmlwriter.RemoveEntry("MyFilms", "Default_Config"); } - + MyFilms_xmlwriter.SetValue(Config_Name.Text.ToString(), "CatalogType", CatalogType.SelectedIndex.ToString()); MyFilms_xmlwriter.SetValue(Config_Name.Text.ToString(), "AntCatalog", MesFilmsCat.Text.ToString()); MyFilms_xmlwriter.SetValue(Config_Name.Text.ToString(), "AntPicture", MesFilmsImg.Text.ToString()); MyFilms_xmlwriter.SetValue(Config_Name.Text.ToString(), "AntStorage", AntStorage.Text.ToString()); @@ -355,6 +355,7 @@ private void Config_Name_SelectedIndexChanged(object sender, EventArgs e) { Refresh_Items(); + CatalogType.SelectedIndex = Convert.ToInt16(MyFilms_xmlreader.GetValueAsString(Config_Name.Text.ToString(), "CatalogType", "0")); MesFilmsCat.Text = MyFilms_xmlreader.GetValueAsString(Config_Name.Text.ToString(), "AntCatalog", ""); MesFilmsImg.Text = MyFilms_xmlreader.GetValueAsString(Config_Name.Text.ToString(), "AntPicture", ""); AntStorage.Text = MyFilms_xmlreader.GetValueAsString(Config_Name.Text.ToString(), "AntStorage", ""); @@ -402,6 +403,7 @@ } private void Refresh_Items() { + CatalogType.SelectedIndex = 0; MesFilmsCat.ResetText(); MesFilmsImg.ResetText(); AntStorage.ResetText(); @@ -465,6 +467,7 @@ MessageBoxIcon.Question); if (dialogResult == DialogResult.Yes) { + MyFilms_xmlwriter.RemoveEntry(Config_Name.Text, "CatalogType"); MyFilms_xmlwriter.RemoveEntry(Config_Name.Text, "AntCatalog"); MyFilms_xmlwriter.RemoveEntry(Config_Name.Text, "AntPicture"); MyFilms_xmlwriter.RemoveEntry(Config_Name.Text, "AntStorage"); @@ -573,9 +576,17 @@ if (reader != null) { reader.Close(); - - mydivx.ReadXml(MesFilmsCat.Text); - + + switch (CatalogType.SelectedIndex) + { + case 0: + mydivx.ReadXml(MesFilmsCat.Text); + break; + case 1: + CatalogConverter cc = new CatalogConverter(); + mydivx.ReadXml(cc.ConvertProfiler(MesFilmsCat.Text)); + break; + } DataRow[] movies = mydivx.Movie.Select(StrDfltSelect + AntTitle1.Text + " not like ''"); if (mydivx.Movie.Count > 0) if (movies.Length > 0) @@ -604,5 +615,22 @@ MesFilmsCat.Focus(); } } + + private void CatalogType_SelectedIndexChanged(object sender, EventArgs e) + { + switch( CatalogType.SelectedIndex) + { + case 0: + break; + case 1: + break; + } + } + + private void button1_Click(object sender, EventArgs e) + { + CatalogConverter cc = new CatalogConverter(); + cc.ConvertProfiler(MesFilmsCat.Text); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |