Browse Source

support nfo episode attributes

Luke Pulverenti 9 years ago
parent
commit
2d3522593e

+ 42 - 0
MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs

@@ -188,6 +188,48 @@ namespace MediaBrowser.XbmcMetadata.Parsers
                         break;
                     }
 
+                case "displayseason":
+                    {
+                        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))
+                            {
+                                if ((item.ParentIndexNumber ?? 0) == 0)
+                                {
+                                    item.AirsBeforeSeasonNumber = rval;
+                                }
+                            }
+                        }
+
+                        break;
+                    }
+
+                case "displayepisode":
+                    {
+                        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))
+                            {
+                                if ((item.ParentIndexNumber ?? 0) == 0)
+                                {
+                                    item.AirsBeforeEpisodeNumber = rval;
+                                }
+                            }
+                        }
+
+                        break;
+                    }
+
 
                 default:
                     base.FetchDataFromXmlNode(reader, itemResult);

+ 10 - 0
MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs

@@ -72,11 +72,21 @@ namespace MediaBrowser.XbmcMetadata.Savers
             {
                 writer.WriteElementString("airsbefore_episode", episode.AirsBeforeEpisodeNumber.Value.ToString(UsCulture));
             }
+            if (episode.AirsBeforeEpisodeNumber.HasValue)
+            {
+                writer.WriteElementString("displayepisode", episode.AirsBeforeEpisodeNumber.Value.ToString(UsCulture));
+            }
             if (episode.AirsBeforeSeasonNumber.HasValue)
             {
                 writer.WriteElementString("airsbefore_season", episode.AirsBeforeSeasonNumber.Value.ToString(UsCulture));
             }
 
+            var season = episode.AiredSeasonNumber;
+            if (season.HasValue)
+            {
+                writer.WriteElementString("displayseason", season.Value.ToString(UsCulture));
+            }
+
             if (episode.DvdEpisodeNumber.HasValue)
             {
                 writer.WriteElementString("DVD_episodenumber", episode.DvdEpisodeNumber.Value.ToString(UsCulture));