diff options
| author | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-07-19 22:22:44 -0400 |
|---|---|---|
| committer | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-07-19 22:22:44 -0400 |
| commit | 80b3ad7bd20329e6a5bbf6eeb76af62c87434a7c (patch) | |
| tree | 81ab455261cf30fab4b932215211d8cd0e57547a /MediaBrowser.Controller/Xml/BaseItemXmlParser.cs | |
| parent | 6fbd5cf46407a212fadb52eee00c7ac7690430ea (diff) | |
Moved the http server to it's own assembly. added comments and made other minor re-organizations.
Diffstat (limited to 'MediaBrowser.Controller/Xml/BaseItemXmlParser.cs')
| -rw-r--r-- | MediaBrowser.Controller/Xml/BaseItemXmlParser.cs | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs b/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs index d36f3533e..ffaf732a6 100644 --- a/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Xml/BaseItemXmlParser.cs @@ -7,15 +7,23 @@ using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Xml
{
- public class BaseItemXmlParser<T>
+ /// <summary>
+ /// Provides a base class for parsing metadata xml
+ /// </summary>
+ public abstract class BaseItemXmlParser<T>
where T : BaseItem, new()
{
+ /// <summary>
+ /// Fetches metadata for an item from one xml file
+ /// </summary>
public virtual void Fetch(T item, string metadataFile)
{
+ // Use XmlReader for best performance
using (XmlReader reader = XmlReader.Create(metadataFile))
{
reader.MoveToContent();
+ // Loop through each element
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
@@ -25,7 +33,7 @@ namespace MediaBrowser.Controller.Xml }
}
- // If dates weren't supplied in metadata, use values from the file
+ // If dates weren't supplied in metadata, use values from the xml file
if (item.DateCreated == DateTime.MinValue)
{
item.DateCreated = File.GetCreationTime(metadataFile);
@@ -37,10 +45,14 @@ namespace MediaBrowser.Controller.Xml }
}
+ /// <summary>
+ /// Fetches metadata from one Xml Element
+ /// </summary>
protected virtual void FetchDataFromXmlNode(XmlReader reader, T item)
{
switch (reader.Name)
{
+ // DateCreated
case "Added":
DateTime added;
if (DateTime.TryParse(reader.ReadElementContentAsString() ?? string.Empty, out added))
@@ -49,6 +61,7 @@ namespace MediaBrowser.Controller.Xml }
break;
+ // DisplayMediaType
case "Type":
{
item.DisplayMediaType = reader.ReadElementContentAsString() ?? string.Empty;
@@ -69,6 +82,7 @@ namespace MediaBrowser.Controller.Xml break;
}
+ // TODO: Do we still need this?
case "banner":
item.BannerImagePath = reader.ReadElementContentAsString() ?? string.Empty;
break;
@@ -172,7 +186,7 @@ namespace MediaBrowser.Controller.Xml string rating = reader.ReadElementContentAsString();
- if (!string.IsNullOrEmpty(rating))
+ if (!string.IsNullOrWhiteSpace(rating))
{
float val;
@@ -428,7 +442,7 @@ namespace MediaBrowser.Controller.Xml {
string genre = reader.ReadElementContentAsString();
- if (!string.IsNullOrEmpty(genre))
+ if (!string.IsNullOrWhiteSpace(genre))
{
list.Add(genre);
}
@@ -461,7 +475,7 @@ namespace MediaBrowser.Controller.Xml {
string genre = reader.ReadElementContentAsString();
- if (!string.IsNullOrEmpty(genre))
+ if (!string.IsNullOrWhiteSpace(genre))
{
list.Add(genre);
}
@@ -522,7 +536,7 @@ namespace MediaBrowser.Controller.Xml {
string studio = reader.ReadElementContentAsString();
- if (!string.IsNullOrEmpty(studio))
+ if (!string.IsNullOrWhiteSpace(studio))
{
list.Add(studio);
}
@@ -555,7 +569,7 @@ namespace MediaBrowser.Controller.Xml int rating = 7;
- if (!string.IsNullOrEmpty(ratingString))
+ if (!string.IsNullOrWhiteSpace(ratingString))
{
int.TryParse(ratingString, out rating);
}
@@ -646,7 +660,7 @@ namespace MediaBrowser.Controller.Xml {
value = (value ?? string.Empty).Trim(deliminator);
- return string.IsNullOrEmpty(value) ? new string[] { } : value.Split(deliminator);
+ return string.IsNullOrWhiteSpace(value) ? new string[] { } : value.Split(deliminator);
}
}
}
|
