aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-12-10 15:42:42 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-12-10 15:42:42 -0500
commit90184470fa8f7c61be978e097326ebab3e413d10 (patch)
tree2ea1e874ddbe0646e4f1bdf326ff2e05366ac036 /MediaBrowser.Providers
parent7c6581dd0f29b9ccb73105bf80bf0b064e24cb9d (diff)
expose episode absolute numbers for editing
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs8
-rw-r--r--MediaBrowser.Providers/Savers/XmlSaverHelpers.cs20
-rw-r--r--MediaBrowser.Providers/TV/EpisodeXmlParser.cs17
-rw-r--r--MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs18
4 files changed, 48 insertions, 15 deletions
diff --git a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
index 88b3af5be0..91e7699948 100644
--- a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
@@ -92,6 +92,11 @@ namespace MediaBrowser.Providers.Savers
builder.Append("<SeasonNumber>" + SecurityElement.Escape(episode.ParentIndexNumber.Value.ToString(_usCulture)) + "</SeasonNumber>");
}
+ if (episode.AbsoluteEpisodeNumber.HasValue)
+ {
+ builder.Append("<absolute_number>" + SecurityElement.Escape(episode.AbsoluteEpisodeNumber.Value.ToString(_usCulture)) + "</absolute_number>");
+ }
+
if (episode.DvdEpisodeNumber.HasValue)
{
builder.Append("<DVD_episodenumber>" + SecurityElement.Escape(episode.DvdEpisodeNumber.Value.ToString(_usCulture)) + "</DVD_episodenumber>");
@@ -125,7 +130,8 @@ namespace MediaBrowser.Providers.Savers
"airsbefore_episode",
"airsbefore_season",
"DVD_episodenumber",
- "DVD_season"
+ "DVD_season",
+ "absolute_number"
});
}
diff --git a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs
index 522b2c90bb..551da20b0f 100644
--- a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs
+++ b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs
@@ -534,20 +534,12 @@ namespace MediaBrowser.Providers.Savers
{
var video = item as Video;
- builder.Append("<MediaInfo>");
-
- builder.Append("<Video>");
-
- if (item.RunTimeTicks.HasValue)
+ if (video != null && video.Video3DFormat.HasValue)
{
- var timespan = TimeSpan.FromTicks(item.RunTimeTicks.Value);
+ builder.Append("<MediaInfo>");
- builder.Append("<Duration>" + Convert.ToInt64(timespan.TotalMinutes).ToString(UsCulture) + "</Duration>");
- builder.Append("<DurationSeconds>" + Convert.ToInt64(timespan.TotalSeconds).ToString(UsCulture) + "</DurationSeconds>");
- }
+ builder.Append("<Video>");
- if (video != null && video.Video3DFormat.HasValue)
- {
switch (video.Video3DFormat.Value)
{
case Video3DFormat.FullSideBySide:
@@ -563,11 +555,11 @@ namespace MediaBrowser.Providers.Savers
builder.Append("<Format3D>HTAB</Format3D>");
break;
}
- }
- builder.Append("</Video>");
+ builder.Append("</Video>");
- builder.Append("</MediaInfo>");
+ builder.Append("</MediaInfo>");
+ }
}
}
}
diff --git a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
index a06a3bf23b..446c34f740 100644
--- a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
+++ b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
@@ -143,6 +143,23 @@ namespace MediaBrowser.Providers.TV
break;
}
+ case "absolute_number":
+ {
+ var val = reader.ReadElementContentAsString();
+
+ if (!string.IsNullOrWhiteSpace(val))
+ {
+ int rval;
+
+ // int.TryParse is local aware, so it can be probamatic, force us culture
+ if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
+ {
+ item.AbsoluteEpisodeNumber = rval;
+ }
+ }
+
+ break;
+ }
case "DVD_episodenumber":
{
var number = reader.ReadElementContentAsString();
diff --git a/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs b/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
index b7709b5d35..f5e21bf69d 100644
--- a/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
+++ b/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
@@ -438,6 +438,24 @@ namespace MediaBrowser.Providers.TV
break;
}
+ case "absolute_number":
+ {
+ var val = reader.ReadElementContentAsString();
+
+ if (!string.IsNullOrWhiteSpace(val))
+ {
+ int rval;
+
+ // int.TryParse is local aware, so it can be probamatic, force us culture
+ if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
+ {
+ item.AbsoluteEpisodeNumber = rval;
+ }
+ }
+
+ break;
+ }
+
case "airsbefore_episode":
{
var val = reader.ReadElementContentAsString();