aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Widrick <daniel-widrick@users.noreply.github.com>2019-03-03 06:46:03 -0500
committerBond-009 <bond.009@outlook.com>2019-03-03 12:46:03 +0100
commit5982cdad90d834a785afcec37efb0bfd3f4f83a9 (patch)
tree9878df80b2ae26e5ca6cd2e6852e5d8ecbaa9688
parentc328417d29300859e5369e78e17ad06306769b4b (diff)
Implement SxxExx EpisodeNum Processing (#1009)
**Changes** Implement and use SxxExx Episode numbering system from guide data if available. **Issues** Fixes #1008
-rw-r--r--Emby.XmlTv/Emby.XmlTv/Classes/XmlTvReader.cs27
1 files changed, 24 insertions, 3 deletions
diff --git a/Emby.XmlTv/Emby.XmlTv/Classes/XmlTvReader.cs b/Emby.XmlTv/Emby.XmlTv/Classes/XmlTvReader.cs
index 52ec7a135..46bf6cc21 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
- // <episode-num system="SxxExx">S03E12</episode-num>
- 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)
+ {
+ // <episode-num system="SxxExx">S012E32</episode-num>
+
+ 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)
{
// <episode-num system="thetvdb.com">series/248841</episode-num>