aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-15 16:31:33 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-15 16:31:33 -0500
commita09e330d4e3ee9cea57f3568c8684dce66c44142 (patch)
treef4869dd400031b42d2fdd5ad635c8bd933d22e6a /MediaBrowser.Providers
parentcc16fd3af88fe3bfdc68d026e63609e41ffd1628 (diff)
Display specials within seasons
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs8
-rw-r--r--MediaBrowser.Providers/TV/EpisodeXmlParser.cs16
-rw-r--r--MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs36
3 files changed, 58 insertions, 2 deletions
diff --git a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
index 5413bd848b..6d7a607565 100644
--- a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
@@ -75,6 +75,11 @@ namespace MediaBrowser.Providers.Savers
{
builder.Append("<EpisodeNumberEnd>" + SecurityElement.Escape(episode.IndexNumberEnd.Value.ToString(_usCulture)) + "</EpisodeNumberEnd>");
}
+
+ if (episode.SpecialSeasonNumber.HasValue)
+ {
+ builder.Append("<SpecialSeasonNumber>" + SecurityElement.Escape(episode.SpecialSeasonNumber.Value.ToString(_usCulture)) + "</SpecialSeasonNumber>");
+ }
if (episode.ParentIndexNumber.HasValue)
{
@@ -99,7 +104,8 @@ namespace MediaBrowser.Providers.Savers
"SeasonNumber",
"EpisodeNumber",
"EpisodeName",
- "EpisodeNumberEnd"
+ "EpisodeNumberEnd",
+ "SpecialSeasonNumber"
});
// Set last refreshed so that the provider doesn't trigger after the file save
diff --git a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
index d3abf397f2..5188e0824b 100644
--- a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
+++ b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
@@ -139,6 +139,22 @@ namespace MediaBrowser.Providers.TV
break;
}
+ case "SpecialSeasonNumber":
+ {
+ var number = reader.ReadElementContentAsString();
+
+ if (!string.IsNullOrWhiteSpace(number))
+ {
+ int num;
+
+ if (int.TryParse(number, out num))
+ {
+ item.SpecialSeasonNumber = num;
+ }
+ }
+ break;
+ }
+
case "EpisodeName":
{
var name = reader.ReadElementContentAsString();
diff --git a/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs b/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
index c47640ad96..ab824ac578 100644
--- a/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
+++ b/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
@@ -113,7 +113,7 @@ namespace MediaBrowser.Providers.TV
{
get
{
- return "1";
+ return "3";
}
}
@@ -404,6 +404,40 @@ namespace MediaBrowser.Providers.TV
break;
}
+ case "airsafter_season":
+ {
+ 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.SpecialSeasonNumber = rval;
+ }
+ }
+ break;
+ }
+
+ case "airsbefore_season":
+ {
+ 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.SpecialSeasonNumber = rval;
+ }
+ }
+ break;
+ }
+
case "EpisodeName":
{
if (!item.LockedFields.Contains(MetadataFields.Name))