From 5982cdad90d834a785afcec37efb0bfd3f4f83a9 Mon Sep 17 00:00:00 2001 From: Daniel Widrick Date: Sun, 3 Mar 2019 06:46:03 -0500 Subject: [PATCH] Implement SxxExx EpisodeNum Processing (#1009) **Changes** Implement and use SxxExx Episode numbering system from guide data if available. **Issues** Fixes #1008 --- Emby.XmlTv/Emby.XmlTv/Classes/XmlTvReader.cs | 27 +++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/Emby.XmlTv/Emby.XmlTv/Classes/XmlTvReader.cs b/Emby.XmlTv/Emby.XmlTv/Classes/XmlTvReader.cs index 52ec7a135d..46bf6cc21c 100644 --- a/Emby.XmlTv/Emby.XmlTv/Classes/XmlTvReader.cs +++ b/Emby.XmlTv/Emby.XmlTv/Classes/XmlTvReader.cs @@ -495,9 +495,7 @@ namespace Emby.XmlTv.Classes ParseMovieDbSystem(reader, result); break; case "SxxExx": - // TODO - // S03E12 - reader.Skip(); + ParseSxxExxSystem(reader, result); break; default: // Handles empty string and nulls reader.Skip(); @@ -505,6 +503,29 @@ namespace Emby.XmlTv.Classes } } + public void ParseSxxExxSystem(XmlReader reader, XmlTvProgram result) + { + // S012E32 + + var value = reader.ReadElementContentAsString(); + var res = Regex.Match(value, "s([0-9]+)e([0-9]+)", RegexOptions.IgnoreCase); + + if (res.Success) + { + int parsedInt; + + if (int.TryParse(res.Groups[1].Value, out parsedInt)) + { + result.Episode.Series = parsedInt; + } + + if (int.TryParse(res.Groups[2].Value, out parsedInt)) + { + result.Episode.Episode = parsedInt; + } + } + } + public void ParseMovieDbSystem(XmlReader reader, XmlTvProgram result) { // series/248841