diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-15 16:31:33 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-15 16:31:33 -0500 |
| commit | a09e330d4e3ee9cea57f3568c8684dce66c44142 (patch) | |
| tree | f4869dd400031b42d2fdd5ad635c8bd933d22e6a /MediaBrowser.Providers | |
| parent | cc16fd3af88fe3bfdc68d026e63609e41ffd1628 (diff) | |
Display specials within seasons
Diffstat (limited to 'MediaBrowser.Providers')
| -rw-r--r-- | MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Providers/TV/EpisodeXmlParser.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs | 36 |
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)) |
