mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-01 11:52:52 +01:00
Initial check-in
This commit is contained in:
62
MediaBrowser.TV/Metadata/EpisodeXmlParser.cs
Normal file
62
MediaBrowser.TV/Metadata/EpisodeXmlParser.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Xml;
|
||||
using MediaBrowser.TV.Entities;
|
||||
|
||||
namespace MediaBrowser.TV.Metadata
|
||||
{
|
||||
public class EpisodeXmlParser : BaseItemXmlParser<Episode>
|
||||
{
|
||||
protected override void FetchDataFromXmlNode(XmlNode node, Episode item)
|
||||
{
|
||||
switch (node.Name)
|
||||
{
|
||||
case "filename":
|
||||
{
|
||||
string filename = node.InnerText;
|
||||
|
||||
if (!string.IsNullOrEmpty(filename))
|
||||
{
|
||||
string metadataFolder = Path.GetDirectoryName(item.Path);
|
||||
item.PrimaryImagePath = Path.Combine(metadataFolder, filename);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "EpisodeNumber":
|
||||
item.EpisodeNumber = node.InnerText ?? string.Empty;
|
||||
break;
|
||||
|
||||
case "SeasonNumber":
|
||||
item.SeasonNumber = node.InnerText ?? string.Empty;
|
||||
break;
|
||||
|
||||
case "EpisodeName":
|
||||
item.Name = node.InnerText ?? string.Empty;
|
||||
break;
|
||||
|
||||
case "FirstAired":
|
||||
{
|
||||
item.FirstAired = node.InnerText ?? string.Empty;
|
||||
|
||||
if (!string.IsNullOrEmpty(item.FirstAired))
|
||||
{
|
||||
DateTime airDate;
|
||||
int y = DateTime.TryParse(item.FirstAired, out airDate) ? airDate.Year : -1;
|
||||
if (y > 1850)
|
||||
{
|
||||
item.ProductionYear = y;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
base.FetchDataFromXmlNode(node, item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
47
MediaBrowser.TV/Metadata/SeriesXmlParser.cs
Normal file
47
MediaBrowser.TV/Metadata/SeriesXmlParser.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using System.Xml;
|
||||
using MediaBrowser.Controller.Xml;
|
||||
using MediaBrowser.TV.Entities;
|
||||
|
||||
namespace MediaBrowser.TV.Metadata
|
||||
{
|
||||
public class SeriesXmlParser : BaseItemXmlParser<Series>
|
||||
{
|
||||
protected override void FetchDataFromXmlNode(XmlNode node, Series item)
|
||||
{
|
||||
switch (node.Name)
|
||||
{
|
||||
case "id":
|
||||
item.TVDBSeriesId = node.InnerText ?? string.Empty;
|
||||
break;
|
||||
|
||||
case "SeriesName":
|
||||
item.Name = node.InnerText ?? string.Empty;
|
||||
break;
|
||||
|
||||
case "Status":
|
||||
item.Status = node.InnerText ?? string.Empty;
|
||||
break;
|
||||
|
||||
case "Runtime":
|
||||
{
|
||||
string text = node.InnerText ?? string.Empty;
|
||||
if (!string.IsNullOrEmpty(text))
|
||||
{
|
||||
|
||||
int runtime;
|
||||
if (int.TryParse(text.Split(' ')[0], out runtime))
|
||||
{
|
||||
item.RunTime = TimeSpan.FromMinutes(runtime);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
base.FetchDataFromXmlNode(node, item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user