|
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.
|