2012-07-11 23:55:27 -07:00
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using MediaBrowser.Controller.Events;
|
|
|
|
|
using MediaBrowser.Controller.Resolvers;
|
|
|
|
|
using MediaBrowser.TV.Entities;
|
|
|
|
|
using MediaBrowser.TV.Metadata;
|
|
|
|
|
|
|
|
|
|
namespace MediaBrowser.TV.Resolvers
|
|
|
|
|
{
|
|
|
|
|
class SeriesResolver : BaseFolderResolver<Series>
|
|
|
|
|
{
|
|
|
|
|
protected override Series Resolve(ItemResolveEventArgs args)
|
|
|
|
|
{
|
|
|
|
|
if (args.IsFolder)
|
|
|
|
|
{
|
2012-07-12 20:50:50 -07:00
|
|
|
|
// Optimization to avoid running these tests against VF's
|
|
|
|
|
if (args.Parent != null && args.Parent.IsRoot)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2012-07-12 10:09:35 -07:00
|
|
|
|
// Optimization to avoid running these tests against Seasons
|
|
|
|
|
if (args.Parent is Series)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2012-07-11 23:55:27 -07:00
|
|
|
|
var metadataFile = args.GetFileByName("series.xml");
|
|
|
|
|
|
2012-07-12 10:09:35 -07:00
|
|
|
|
if (metadataFile.HasValue || Path.GetFileName(args.Path).IndexOf("[tvdbid=", StringComparison.OrdinalIgnoreCase) != -1 || TVUtils.IsSeriesFolder(args.Path, args.FileSystemChildren))
|
2012-07-11 23:55:27 -07:00
|
|
|
|
{
|
|
|
|
|
return new Series();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void SetItemValues(Series item, ItemResolveEventArgs args)
|
|
|
|
|
{
|
|
|
|
|
base.SetItemValues(item, args);
|
|
|
|
|
|
|
|
|
|
var metadataFile = args.GetFileByName("series.xml");
|
|
|
|
|
|
|
|
|
|
if (metadataFile.HasValue)
|
|
|
|
|
{
|
|
|
|
|
new SeriesXmlParser().Fetch(item, metadataFile.Value.Key);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|