aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata
diff options
context:
space:
mode:
authorstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
committerstefan <stefan@hegedues.at>2018-09-12 19:26:21 +0200
commit48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch)
tree8dae77a31670a888d733484cb17dd4077d5444e8 /MediaBrowser.XbmcMetadata
parentc32d8656382a0eacb301692e0084377fc433ae9b (diff)
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
-rw-r--r--MediaBrowser.XbmcMetadata/EntryPoint.cs41
-rw-r--r--MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj97
-rw-r--r--MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.nuget.targets6
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs49
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs70
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs16
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs4
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs12
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs12
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs124
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs30
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs12
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs10
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs13
-rw-r--r--MediaBrowser.XbmcMetadata/packages.config3
15 files changed, 132 insertions, 367 deletions
diff --git a/MediaBrowser.XbmcMetadata/EntryPoint.cs b/MediaBrowser.XbmcMetadata/EntryPoint.cs
index 9cc17481c..e4b11a6fc 100644
--- a/MediaBrowser.XbmcMetadata/EntryPoint.cs
+++ b/MediaBrowser.XbmcMetadata/EntryPoint.cs
@@ -8,7 +8,6 @@ using MediaBrowser.Model.Logging;
using MediaBrowser.XbmcMetadata.Configuration;
using MediaBrowser.XbmcMetadata.Savers;
using System;
-using MediaBrowser.Controller.Dto;
namespace MediaBrowser.XbmcMetadata
{
@@ -32,48 +31,15 @@ namespace MediaBrowser.XbmcMetadata
public void Run()
{
_userDataManager.UserDataSaved += _userDataManager_UserDataSaved;
- _libraryManager.ItemUpdated += _libraryManager_ItemUpdated;
- }
-
- void _libraryManager_ItemUpdated(object sender, ItemChangeEventArgs e)
- {
- if (e.UpdateReason >= ItemUpdateType.ImageUpdate)
- {
- var person = e.Item as Person;
-
- if (person != null)
- {
- var config = _config.GetNfoConfiguration();
-
- if (!config.SaveImagePathsInNfo)
- {
- return;
- }
-
- var items = _libraryManager.GetItemList(new InternalItemsQuery
- {
- PersonIds = new[] { person.Id.ToString("N") },
- DtoOptions = new DtoOptions(true)
-
- });
-
- foreach (var item in items)
- {
- SaveMetadataForItem(item, e.UpdateReason);
- }
- }
- }
}
void _userDataManager_UserDataSaved(object sender, UserDataSaveEventArgs e)
{
if (e.SaveReason == UserDataSaveReason.PlaybackFinished || e.SaveReason == UserDataSaveReason.TogglePlayed || e.SaveReason == UserDataSaveReason.UpdateUserRating)
{
- var item = e.Item as BaseItem;
-
if (!string.IsNullOrWhiteSpace(_config.GetNfoConfiguration().UserId))
{
- SaveMetadataForItem(item, ItemUpdateType.MetadataDownload);
+ SaveMetadataForItem(e.Item, ItemUpdateType.MetadataDownload);
}
}
}
@@ -81,14 +47,11 @@ namespace MediaBrowser.XbmcMetadata
public void Dispose()
{
_userDataManager.UserDataSaved -= _userDataManager_UserDataSaved;
- GC.SuppressFinalize(this);
}
private void SaveMetadataForItem(BaseItem item, ItemUpdateType updateReason)
{
- var locationType = item.LocationType;
- if (locationType == LocationType.Remote ||
- locationType == LocationType.Virtual)
+ if (!item.IsFileProtocol)
{
return;
}
diff --git a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj
index e84fa8e65..e4c9a0c35 100644
--- a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj
+++ b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj
@@ -1,88 +1,17 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{23499896-B135-4527-8574-C26E926EA99E}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>MediaBrowser.XbmcMetadata</RootNamespace>
- <AssemblyName>MediaBrowser.XbmcMetadata</AssemblyName>
- <FileAlignment>512</FileAlignment>
- <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
- <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <TargetFrameworkProfile>Profile7</TargetFrameworkProfile>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>none</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
+<Project Sdk="Microsoft.NET.Sdk">
+
<ItemGroup>
- <Compile Include="..\SharedVersion.cs">
- <Link>Properties\SharedVersion.cs</Link>
- </Compile>
- <Compile Include="Configuration\NfoOptions.cs" />
- <Compile Include="EntryPoint.cs" />
- <Compile Include="Parsers\BaseNfoParser.cs" />
- <Compile Include="Parsers\EpisodeNfoParser.cs" />
- <Compile Include="Parsers\MovieNfoParser.cs" />
- <Compile Include="Parsers\SeasonNfoParser.cs" />
- <Compile Include="Parsers\SeriesNfoParser.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Providers\AlbumNfoProvider.cs" />
- <Compile Include="Providers\ArtistNfoProvider.cs" />
- <Compile Include="Providers\BaseNfoProvider.cs" />
- <Compile Include="Providers\BaseVideoNfoProvider.cs" />
- <Compile Include="Providers\EpisodeNfoProvider.cs" />
- <Compile Include="Providers\MovieNfoProvider.cs" />
- <Compile Include="Providers\SeasonNfoProvider.cs" />
- <Compile Include="Providers\SeriesNfoProvider.cs" />
- <Compile Include="Savers\AlbumNfoSaver.cs" />
- <Compile Include="Savers\ArtistNfoSaver.cs" />
- <Compile Include="Savers\BaseNfoSaver.cs" />
- <Compile Include="Savers\EpisodeNfoSaver.cs" />
- <Compile Include="Savers\MovieNfoSaver.cs" />
- <Compile Include="Savers\SeasonNfoSaver.cs" />
- <Compile Include="Savers\SeriesNfoSaver.cs" />
+ <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+ <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
</ItemGroup>
+
<ItemGroup>
- <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj">
- <Project>{9142eefa-7570-41e1-bfcc-468bb571af2f}</Project>
- <Name>MediaBrowser.Common</Name>
- </ProjectReference>
- <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj">
- <Project>{17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2}</Project>
- <Name>MediaBrowser.Controller</Name>
- </ProjectReference>
- <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj">
- <Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
- <Name>MediaBrowser.Model</Name>
- </ProjectReference>
+ <Compile Include="..\SharedVersion.cs"/>
</ItemGroup>
- <ItemGroup>
- <None Include="packages.config" />
- </ItemGroup>
- <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
+
+ <PropertyGroup>
+ <TargetFramework>netcoreapp2.1</TargetFramework>
+ <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+ </PropertyGroup>
+
+</Project>
diff --git a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.nuget.targets b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.nuget.targets
deleted file mode 100644
index e69ce0e64..000000000
--- a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.nuget.targets
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Target Name="EmitMSBuildWarning" BeforeTargets="Build">
- <Warning Text="Packages containing MSBuild targets and props files cannot be fully installed in projects targeting multiple frameworks. The MSBuild targets and props files have been ignored." />
- </Target>
-</Project> \ No newline at end of file
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index 689f175f3..3b8d68776 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -187,18 +187,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
return;
}
- using (var ms = new MemoryStream())
+ // These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
+ try
{
- var bytes = Encoding.UTF8.GetBytes(xml);
-
- ms.Write(bytes, 0, bytes.Length);
- ms.Position = 0;
-
- // These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
- try
+ using (var stringReader = new StringReader(xml))
{
// Use XmlReader for best performance
- using (var reader = XmlReader.Create(ms, settings))
+ using (var reader = XmlReader.Create(stringReader, settings))
{
reader.MoveToContent();
reader.Read();
@@ -219,10 +214,10 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
}
}
- catch (XmlException)
- {
+ }
+ catch (XmlException)
+ {
- }
}
}
}
@@ -251,7 +246,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
var tmdbId = xml.Substring(index + srch.Length).TrimEnd('/').Split('-')[0];
int value;
- if (!string.IsNullOrWhiteSpace(tmdbId) && int.TryParse(tmdbId, NumberStyles.Any, CultureInfo.InvariantCulture, out value))
+ if (!string.IsNullOrWhiteSpace(tmdbId) && int.TryParse(tmdbId, NumberStyles.Integer, CultureInfo.InvariantCulture, out value))
{
item.SetProviderId(MetadataProviders.Tmdb, value.ToString(_usCulture));
}
@@ -267,7 +262,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
var tvdbId = xml.Substring(index + srch.Length).TrimEnd('/');
int value;
- if (!string.IsNullOrWhiteSpace(tvdbId) && int.TryParse(tvdbId, NumberStyles.Any, CultureInfo.InvariantCulture, out value))
+ if (!string.IsNullOrWhiteSpace(tvdbId) && int.TryParse(tvdbId, NumberStyles.Integer, CultureInfo.InvariantCulture, out value))
{
item.SetProviderId(MetadataProviders.Tvdb, value.ToString(_usCulture));
}
@@ -380,18 +375,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
break;
}
- case "website":
- {
- var val = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(val))
- {
- item.HomePageUrl = val;
- }
-
- break;
- }
-
case "lockedfields":
{
var val = reader.ReadElementContentAsString();
@@ -592,15 +575,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
var val = reader.ReadElementContentAsString();
- var hasTrailer = item as IHasTrailers;
- if (hasTrailer != null)
+ if (!string.IsNullOrWhiteSpace(val))
{
- if (!string.IsNullOrWhiteSpace(val))
- {
- val = val.Replace("plugin://plugin.video.youtube/?action=play_video&videoid=", "https://www.youtube.com/watch?v=", StringComparison.OrdinalIgnoreCase);
+ val = val.Replace("plugin://plugin.video.youtube/?action=play_video&videoid=", BaseNfoSaver.YouTubeWatchUrl, StringComparison.OrdinalIgnoreCase);
- hasTrailer.AddTrailerUrl(val);
- }
+ item.AddTrailerUrl(val);
}
break;
}
@@ -977,7 +956,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
value = value.Trim().Trim(separator);
- return string.IsNullOrWhiteSpace(value) ? new string[] { } : Split(value, separator, StringSplitOptions.RemoveEmptyEntries);
+ return string.IsNullOrWhiteSpace(value) ? Array.Empty<string>() : Split(value, separator, StringSplitOptions.RemoveEmptyEntries);
}
/// <summary>
@@ -987,7 +966,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
/// <param name="separators">The separators.</param>
/// <param name="options">The options.</param>
/// <returns>System.String[][].</returns>
- private static string[] Split(string val, char[] separators, StringSplitOptions options)
+ private string[] Split(string val, char[] separators, StringSplitOptions options)
{
return val.Split(separators, options);
}
diff --git a/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
index 953b59f46..ce7b924eb 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
@@ -24,7 +24,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
Fetch(item, metadataFile, cancellationToken);
}
- private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
+ private readonly CultureInfo UsCulture = new CultureInfo("en-US");
protected override void Fetch(MetadataResult<Episode> item, string metadataFile, XmlReaderSettings settings, CancellationToken cancellationToken)
{
@@ -44,18 +44,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
xml = xml.Substring(0, index + srch.Length);
}
- using (var ms = new MemoryStream())
+ // These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
+ try
{
- var bytes = Encoding.UTF8.GetBytes(xml);
-
- ms.Write(bytes, 0, bytes.Length);
- ms.Position = 0;
-
- // These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
- try
+ using (var stringReader = new StringReader(xml))
{
// Use XmlReader for best performance
- using (var reader = XmlReader.Create(ms, settings))
+ using (var reader = XmlReader.Create(stringReader, settings))
{
reader.MoveToContent();
reader.Read();
@@ -76,10 +71,10 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
}
}
- catch (XmlException)
- {
+ }
+ catch (XmlException)
+ {
- }
}
}
}
@@ -144,55 +139,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
break;
}
- case "absolute_number":
- {
- 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))
- {
- item.AbsoluteEpisodeNumber = rval;
- }
- }
-
- break;
- }
- case "DVD_episodenumber":
- {
- var number = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(number))
- {
- float num;
-
- if (float.TryParse(number, NumberStyles.Any, UsCulture, out num))
- {
- item.DvdEpisodeNumber = num;
- }
- }
- break;
- }
-
- case "DVD_season":
- {
- var number = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(number))
- {
- float num;
-
- if (float.TryParse(number, NumberStyles.Any, UsCulture, out num))
- {
- item.DvdSeasonNumber = Convert.ToInt32(num);
- }
- }
- break;
- }
-
case "airsbefore_episode":
{
var val = reader.ReadElementContentAsString();
diff --git a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
index 0283e4a7b..94b4c30f2 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
@@ -125,17 +125,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
private void ParseSetXml(string xml, Movie movie)
{
- using (var ms = new MemoryStream())
- {
- //xml = xml.Substring(xml.IndexOf('<'));
- //xml = xml.Substring(0, xml.LastIndexOf('>'));
- xml = "<set>" + xml + "</set>";
-
- var bytes = Encoding.UTF8.GetBytes(xml);
-
- ms.Write(bytes, 0, bytes.Length);
- ms.Position = 0;
+ //xml = xml.Substring(xml.IndexOf('<'));
+ //xml = xml.Substring(0, xml.LastIndexOf('>'));
+ using (var stringReader = new StringReader("<set>" + xml + "</set>"))
+ {
// These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
try
{
@@ -146,7 +140,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
settings.IgnoreComments = true;
// Use XmlReader for best performance
- using (var reader = XmlReader.Create(ms, settings))
+ using (var reader = XmlReader.Create(stringReader, settings))
{
reader.MoveToContent();
reader.Read();
diff --git a/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs
index 4803004dd..123c0493f 100644
--- a/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs
+++ b/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs
@@ -9,7 +9,7 @@ using MediaBrowser.Model.IO;
namespace MediaBrowser.XbmcMetadata.Providers
{
public abstract class BaseNfoProvider<T> : ILocalMetadataProvider<T>, IHasItemChangeMonitor
- where T : IHasMetadata, new()
+ where T : BaseItem, new()
{
protected IFileSystem FileSystem;
@@ -56,7 +56,7 @@ namespace MediaBrowser.XbmcMetadata.Providers
protected abstract FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService);
- public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
+ public bool HasChanged(BaseItem item, IDirectoryService directoryService)
{
var file = GetXmlFile(new ItemInfo(item), directoryService);
diff --git a/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs
index f9f9c9b98..dcce00d69 100644
--- a/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs
@@ -18,17 +18,17 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
public class AlbumNfoSaver : BaseNfoSaver
{
- protected override string GetLocalSavePath(IHasMetadata item)
+ protected override string GetLocalSavePath(BaseItem item)
{
return Path.Combine(item.Path, "album.nfo");
}
- protected override string GetRootElementName(IHasMetadata item)
+ protected override string GetRootElementName(BaseItem item)
{
return "album";
}
- public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType)
+ public override bool IsEnabledFor(BaseItem item, ItemUpdateType updateType)
{
if (!item.SupportsLocalMetadata)
{
@@ -38,7 +38,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return item is MusicAlbum && updateType >= MinimumUpdateType;
}
- protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer)
+ protected override void WriteCustomElements(BaseItem item, XmlWriter writer)
{
var album = (MusicAlbum)item;
@@ -55,7 +55,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
AddTracks(album.Tracks, writer);
}
- private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
+ private readonly CultureInfo UsCulture = new CultureInfo("en-US");
private void AddTracks(IEnumerable<BaseItem> tracks, XmlWriter writer)
{
@@ -84,7 +84,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- protected override List<string> GetTagsUsed(IHasMetadata item)
+ protected override List<string> GetTagsUsed(BaseItem item)
{
var list = base.GetTagsUsed(item);
list.AddRange(new string[]
diff --git a/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs
index a7f4e56a6..f571dc2b7 100644
--- a/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs
@@ -17,17 +17,17 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
public class ArtistNfoSaver : BaseNfoSaver
{
- protected override string GetLocalSavePath(IHasMetadata item)
+ protected override string GetLocalSavePath(BaseItem item)
{
return Path.Combine(item.Path, "artist.nfo");
}
- protected override string GetRootElementName(IHasMetadata item)
+ protected override string GetRootElementName(BaseItem item)
{
return "artist";
}
- public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType)
+ public override bool IsEnabledFor(BaseItem item, ItemUpdateType updateType)
{
if (!item.SupportsLocalMetadata)
{
@@ -37,7 +37,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return item is MusicArtist && updateType >= MinimumUpdateType;
}
- protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer)
+ protected override void WriteCustomElements(BaseItem item, XmlWriter writer)
{
var artist = (MusicArtist)item;
@@ -54,7 +54,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
AddAlbums(albums, writer);
}
- private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
+ private readonly CultureInfo UsCulture = new CultureInfo("en-US");
private void AddAlbums(IList<BaseItem> albums, XmlWriter writer)
{
@@ -76,7 +76,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- protected override List<string> GetTagsUsed(IHasMetadata item)
+ protected override List<string> GetTagsUsed(BaseItem item)
{
var list = base.GetTagsUsed(item);
list.AddRange(new string[]
diff --git a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
index d32081458..505fec65f 100644
--- a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
@@ -28,6 +28,8 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
public abstract class BaseNfoSaver : IMetadataFileSaver
{
+ public static readonly string YouTubeWatchUrl = "https://www.youtube.com/watch?v=";
+
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
private static readonly Dictionary<string, string> CommonTags = new[] {
@@ -42,7 +44,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
"sorttitle",
"mpaa",
"aspectratio",
- "website",
"collectionnumber",
"tmdbid",
"rottentomatoesid",
@@ -147,7 +148,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- public string GetSavePath(IHasMetadata item)
+ public string GetSavePath(BaseItem item)
{
return GetLocalSavePath(item);
}
@@ -157,14 +158,14 @@ namespace MediaBrowser.XbmcMetadata.Savers
/// </summary>
/// <param name="item">The item.</param>
/// <returns>System.String.</returns>
- protected abstract string GetLocalSavePath(IHasMetadata item);
+ protected abstract string GetLocalSavePath(BaseItem item);
/// <summary>
/// Gets the name of the root element.
/// </summary>
/// <param name="item">The item.</param>
/// <returns>System.String.</returns>
- protected abstract string GetRootElementName(IHasMetadata item);
+ protected abstract string GetRootElementName(BaseItem item);
/// <summary>
/// Determines whether [is enabled for] [the specified item].
@@ -172,9 +173,9 @@ namespace MediaBrowser.XbmcMetadata.Savers
/// <param name="item">The item.</param>
/// <param name="updateType">Type of the update.</param>
/// <returns><c>true</c> if [is enabled for] [the specified item]; otherwise, <c>false</c>.</returns>
- public abstract bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType);
+ public abstract bool IsEnabledFor(BaseItem item, ItemUpdateType updateType);
- protected virtual List<string> GetTagsUsed(IHasMetadata item)
+ protected virtual List<string> GetTagsUsed(BaseItem item)
{
var list = new List<string>();
foreach (var providerKey in item.ProviderIds.Keys)
@@ -188,7 +189,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return list;
}
- public void Save(IHasMetadata item, CancellationToken cancellationToken)
+ public void Save(BaseItem item, CancellationToken cancellationToken)
{
var path = GetSavePath(item);
@@ -207,27 +208,15 @@ namespace MediaBrowser.XbmcMetadata.Savers
private void SaveToFile(Stream stream, string path)
{
FileSystem.CreateDirectory(FileSystem.GetDirectoryName(path));
-
- var file = FileSystem.GetFileInfo(path);
-
- var wasHidden = false;
-
- // This will fail if the file is hidden
- if (file.Exists)
- {
- if (file.IsHidden)
- {
- wasHidden = true;
- }
- FileSystem.SetAttributes(path, false, false);
- }
+ // On Windows, savint the file will fail if the file is hidden or readonly
+ FileSystem.SetAttributes(path, false, false);
using (var filestream = FileSystem.GetFileStream(path, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read))
{
stream.CopyTo(filestream);
}
- if (wasHidden || ConfigurationManager.Configuration.SaveMetadataHidden)
+ if (ConfigurationManager.Configuration.SaveMetadataHidden)
{
SetHidden(path, true);
}
@@ -245,7 +234,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- private void Save(IHasMetadata item, Stream stream, string xmlPath)
+ private void Save(BaseItem item, Stream stream, string xmlPath)
{
var settings = new XmlWriterSettings
{
@@ -262,7 +251,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteStartElement(root);
- var baseItem = item as BaseItem;
+ var baseItem = item;
if (baseItem != null)
{
@@ -303,7 +292,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- protected abstract void WriteCustomElements(IHasMetadata item, XmlWriter writer);
+ protected abstract void WriteCustomElements(BaseItem item, XmlWriter writer);
public static void AddMediaInfo<T>(T item, XmlWriter writer)
where T : IHasMediaSources
@@ -389,13 +378,13 @@ namespace MediaBrowser.XbmcMetadata.Savers
if (stream.Type == MediaStreamType.Video)
{
- var runtimeTicks = ((IHasMetadata) item).RunTimeTicks;
+ var runtimeTicks = item.RunTimeTicks;
if (runtimeTicks.HasValue)
{
var timespan = TimeSpan.FromTicks(runtimeTicks.Value);
- writer.WriteElementString("duration", Convert.ToInt32(timespan.TotalMinutes).ToString(UsCulture));
- writer.WriteElementString("durationinseconds", Convert.ToInt32(timespan.TotalSeconds).ToString(UsCulture));
+ writer.WriteElementString("duration", Math.Floor(timespan.TotalMinutes).ToString(UsCulture));
+ writer.WriteElementString("durationinseconds", Math.Floor(timespan.TotalSeconds).ToString(UsCulture));
}
var video = item as Video;
@@ -454,7 +443,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
/// Adds the common nodes.
/// </summary>
/// <returns>Task.</returns>
- public static void AddCommonNodes(BaseItem item, XmlWriter writer, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataRepo, IFileSystem fileSystem, IServerConfigurationManager config)
+ private void AddCommonNodes(BaseItem item, XmlWriter writer, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataRepo, IFileSystem fileSystem, IServerConfigurationManager config)
{
var writtenProviderIds = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
@@ -539,13 +528,9 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString("credits", person);
}
- var hasTrailer = item as IHasTrailers;
- if (hasTrailer != null)
+ foreach (var trailer in item.RemoteTrailers)
{
- foreach (var trailer in hasTrailer.RemoteTrailers)
- {
- writer.WriteElementString("trailer", GetOutputTrailerUrl(trailer.Url));
- }
+ writer.WriteElementString("trailer", GetOutputTrailerUrl(trailer.Url));
}
if (item.CommunityRating.HasValue)
@@ -578,11 +563,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- if (!string.IsNullOrEmpty(item.HomePageUrl))
- {
- writer.WriteElementString("website", item.HomePageUrl);
- }
-
var tmdbCollection = item.GetProviderId(MetadataProviders.TmdbCollection);
if (!string.IsNullOrEmpty(tmdbCollection))
@@ -679,7 +659,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
var timespan = TimeSpan.FromTicks(runTimeTicks.Value);
- writer.WriteElementString("runtime", Convert.ToInt32(timespan.TotalMinutes).ToString(UsCulture));
+ writer.WriteElementString("runtime", Convert.ToInt64(timespan.TotalMinutes).ToString(UsCulture));
}
if (!string.IsNullOrWhiteSpace(item.Tagline))
@@ -791,8 +771,23 @@ namespace MediaBrowser.XbmcMetadata.Savers
var providerId = item.ProviderIds[providerKey];
if (!string.IsNullOrEmpty(providerId) && !writtenProviderIds.Contains(providerKey))
{
- writer.WriteElementString(GetTagForProviderKey(providerKey), providerId);
- writtenProviderIds.Add(providerKey);
+ try
+ {
+ var tagName = GetTagForProviderKey(providerKey);
+ //Logger.Debug("Verifying custom provider tagname {0}", tagName);
+ XmlConvert.VerifyName(tagName);
+ //Logger.Debug("Saving custom provider tagname {0}", tagName);
+
+ writer.WriteElementString(GetTagForProviderKey(providerKey), providerId);
+ }
+ catch (ArgumentException)
+ {
+ // catch invalid names without failing the entire operation
+ }
+ catch (XmlException)
+ {
+ // catch invalid names without failing the entire operation
+ }
}
}
}
@@ -813,24 +808,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- public static void AddChapters(Video item, XmlWriter writer, IItemRepository repository)
- {
- var chapters = repository.GetChapters(item.Id);
-
- foreach (var chapter in chapters)
- {
- writer.WriteStartElement("chapter");
- writer.WriteElementString("name", chapter.Name);
-
- var time = TimeSpan.FromTicks(chapter.StartPositionTicks);
- var ms = Convert.ToInt64(time.TotalMilliseconds);
-
- writer.WriteElementString("startpositionms", ms.ToString(UsCulture));
- writer.WriteEndElement();
- }
- }
-
- private static void AddCollectionItems(Folder item, XmlWriter writer)
+ private void AddCollectionItems(Folder item, XmlWriter writer)
{
var items = item.LinkedChildren
.Where(i => i.Type == LinkedChildType.Manual)
@@ -845,6 +823,11 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString("path", link.Path);
}
+ if (!string.IsNullOrWhiteSpace(link.LibraryItemId))
+ {
+ writer.WriteElementString("ItemId", link.LibraryItemId);
+ }
+
writer.WriteEndElement();
}
}
@@ -854,16 +837,13 @@ namespace MediaBrowser.XbmcMetadata.Savers
/// </summary>
/// <param name="url">The URL.</param>
/// <returns>System.String.</returns>
- private static string GetOutputTrailerUrl(string url)
+ private string GetOutputTrailerUrl(string url)
{
// This is what xbmc expects
-
- return url.Replace("https://www.youtube.com/watch?v=",
- "plugin://plugin.video.youtube/?action=play_video&videoid=",
- StringComparison.OrdinalIgnoreCase);
+ return url.Replace(YouTubeWatchUrl, "plugin://plugin.video.youtube/?action=play_video&videoid=", StringComparison.OrdinalIgnoreCase);
}
- private static void AddImages(BaseItem item, XmlWriter writer, ILibraryManager libraryManager, IServerConfigurationManager config)
+ private void AddImages(BaseItem item, XmlWriter writer, ILibraryManager libraryManager, IServerConfigurationManager config)
{
writer.WriteStartElement("art");
@@ -882,7 +862,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteEndElement();
}
- private static void AddUserData(BaseItem item, XmlWriter writer, IUserManager userManager, IUserDataManager userDataRepo, XbmcMetadataOptions options)
+ private void AddUserData(BaseItem item, XmlWriter writer, IUserManager userManager, IUserDataManager userDataRepo, XbmcMetadataOptions options)
{
var userId = options.UserId;
if (string.IsNullOrWhiteSpace(userId))
@@ -932,7 +912,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteEndElement();
}
- private static void AddActors(List<PersonInfo> people, XmlWriter writer, ILibraryManager libraryManager, IFileSystem fileSystem, IServerConfigurationManager config, bool saveImagePath)
+ private void AddActors(List<PersonInfo> people, XmlWriter writer, ILibraryManager libraryManager, IFileSystem fileSystem, IServerConfigurationManager config, bool saveImagePath)
{
var actors = people
.Where(i => !IsPersonType(i, PersonType.Director) && !IsPersonType(i, PersonType.Writer))
@@ -984,7 +964,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- private static string GetImagePathToSave(ItemImageInfo image, ILibraryManager libraryManager, IServerConfigurationManager config)
+ private string GetImagePathToSave(ItemImageInfo image, ILibraryManager libraryManager, IServerConfigurationManager config)
{
if (!image.IsLocalFile)
{
@@ -994,7 +974,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return libraryManager.GetPathAfterNetworkSubstitution(image.Path);
}
- private static bool IsPersonType(PersonInfo person, string type)
+ private bool IsPersonType(PersonInfo person, string type)
{
return string.Equals(person.Type, type, StringComparison.OrdinalIgnoreCase) || string.Equals(person.Role, type, StringComparison.OrdinalIgnoreCase);
}
@@ -1052,7 +1032,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- private static string GetTagForProviderKey(string providerKey)
+ private string GetTagForProviderKey(string providerKey)
{
return providerKey.ToLower() + "id";
}
diff --git a/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs
index bbd3a8d34..33f96fc8f 100644
--- a/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs
@@ -17,17 +17,17 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
public class EpisodeNfoSaver : BaseNfoSaver
{
- protected override string GetLocalSavePath(IHasMetadata item)
+ protected override string GetLocalSavePath(BaseItem item)
{
return Path.ChangeExtension(item.Path, ".nfo");
}
- protected override string GetRootElementName(IHasMetadata item)
+ protected override string GetRootElementName(BaseItem item)
{
return "episodedetails";
}
- public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType)
+ public override bool IsEnabledFor(BaseItem item, ItemUpdateType updateType)
{
if (!item.SupportsLocalMetadata)
{
@@ -37,7 +37,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return item is Episode && updateType >= MinimumUpdateType;
}
- protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer)
+ protected override void WriteCustomElements(BaseItem item, XmlWriter writer)
{
var episode = (Episode)item;
@@ -89,26 +89,11 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString("displayseason", specialSeason.Value.ToString(UsCulture));
}
}
-
- if (episode.DvdEpisodeNumber.HasValue)
- {
- writer.WriteElementString("DVD_episodenumber", episode.DvdEpisodeNumber.Value.ToString(UsCulture));
- }
-
- if (episode.DvdSeasonNumber.HasValue)
- {
- writer.WriteElementString("DVD_season", episode.DvdSeasonNumber.Value.ToString(UsCulture));
- }
-
- if (episode.AbsoluteEpisodeNumber.HasValue)
- {
- writer.WriteElementString("absolute_number", episode.AbsoluteEpisodeNumber.Value.ToString(UsCulture));
- }
}
- private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
+ private readonly CultureInfo UsCulture = new CultureInfo("en-US");
- protected override List<string> GetTagsUsed(IHasMetadata item)
+ protected override List<string> GetTagsUsed(BaseItem item)
{
var list = base.GetTagsUsed(item);
list.AddRange(new string[]
@@ -120,9 +105,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
"airsafter_season",
"airsbefore_episode",
"airsbefore_season",
- "DVD_episodenumber",
- "DVD_season",
- "absolute_number",
"displayseason",
"displayepisode"
});
diff --git a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
index 1989a2c28..0fc74e66b 100644
--- a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
public class MovieNfoSaver : BaseNfoSaver
{
- protected override string GetLocalSavePath(IHasMetadata item)
+ protected override string GetLocalSavePath(BaseItem item)
{
var paths = GetMovieSavePaths(new ItemInfo(item), FileSystem);
return paths.Count == 0 ? null : paths[0];
@@ -61,12 +61,12 @@ namespace MediaBrowser.XbmcMetadata.Savers
return list;
}
- protected override string GetRootElementName(IHasMetadata item)
+ protected override string GetRootElementName(BaseItem item)
{
return item is MusicVideo ? "musicvideo" : "movie";
}
- public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType)
+ public override bool IsEnabledFor(BaseItem item, ItemUpdateType updateType)
{
if (!item.SupportsLocalMetadata)
{
@@ -76,7 +76,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
var video = item as Video;
// Check parent for null to avoid running this against things like video backdrops
- if (video != null && !(item is Episode) && !video.IsOwnedItem)
+ if (video != null && !(item is Episode) && !video.ExtraType.HasValue)
{
return updateType >= MinimumUpdateType;
}
@@ -84,7 +84,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return false;
}
- protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer)
+ protected override void WriteCustomElements(BaseItem item, XmlWriter writer)
{
var imdb = item.GetProviderId(MetadataProviders.Imdb);
@@ -118,7 +118,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- protected override List<string> GetTagsUsed(IHasMetadata item)
+ protected override List<string> GetTagsUsed(BaseItem item)
{
var list = base.GetTagsUsed(item);
list.AddRange(new string[]
diff --git a/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs
index 85ed307c1..5a626eef9 100644
--- a/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs
@@ -16,17 +16,17 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
public class SeasonNfoSaver : BaseNfoSaver
{
- protected override string GetLocalSavePath(IHasMetadata item)
+ protected override string GetLocalSavePath(BaseItem item)
{
return Path.Combine(item.Path, "season.nfo");
}
- protected override string GetRootElementName(IHasMetadata item)
+ protected override string GetRootElementName(BaseItem item)
{
return "season";
}
- public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType)
+ public override bool IsEnabledFor(BaseItem item, ItemUpdateType updateType)
{
if (!item.SupportsLocalMetadata)
{
@@ -41,7 +41,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return updateType >= MinimumUpdateType || (updateType >= ItemUpdateType.MetadataImport && FileSystem.FileExists(GetSavePath(item)));
}
- protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer)
+ protected override void WriteCustomElements(BaseItem item, XmlWriter writer)
{
var season = (Season)item;
@@ -51,7 +51,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- protected override List<string> GetTagsUsed(IHasMetadata item)
+ protected override List<string> GetTagsUsed(BaseItem item)
{
var list = base.GetTagsUsed(item);
list.AddRange(new string[]
diff --git a/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs
index a2f07d952..27bc5f038 100644
--- a/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs
@@ -17,17 +17,17 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
public class SeriesNfoSaver : BaseNfoSaver
{
- protected override string GetLocalSavePath(IHasMetadata item)
+ protected override string GetLocalSavePath(BaseItem item)
{
return Path.Combine(item.Path, "tvshow.nfo");
}
- protected override string GetRootElementName(IHasMetadata item)
+ protected override string GetRootElementName(BaseItem item)
{
return "tvshow";
}
- public override bool IsEnabledFor(IHasMetadata item, ItemUpdateType updateType)
+ public override bool IsEnabledFor(BaseItem item, ItemUpdateType updateType)
{
if (!item.SupportsLocalMetadata)
{
@@ -37,7 +37,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return item is Series && updateType >= MinimumUpdateType;
}
- protected override void WriteCustomElements(IHasMetadata item, XmlWriter writer)
+ protected override void WriteCustomElements(BaseItem item, XmlWriter writer)
{
var series = (Series)item;
@@ -71,7 +71,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- protected override List<string> GetTagsUsed(IHasMetadata item)
+ protected override List<string> GetTagsUsed(BaseItem item)
{
var list = base.GetTagsUsed(item);
list.AddRange(new string[]
@@ -80,7 +80,8 @@ namespace MediaBrowser.XbmcMetadata.Savers
"episodeguide",
"season",
"episode",
- "status"
+ "status",
+ "displayorder"
});
return list;
}
diff --git a/MediaBrowser.XbmcMetadata/packages.config b/MediaBrowser.XbmcMetadata/packages.config
deleted file mode 100644
index 6b8deb9c9..000000000
--- a/MediaBrowser.XbmcMetadata/packages.config
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-</packages> \ No newline at end of file