commit
fd93caf37f
|
@ -646,11 +646,6 @@ namespace Emby.Dlna.Didl
|
|||
{
|
||||
var desc = item.Overview;
|
||||
|
||||
if (!string.IsNullOrEmpty(item.ShortOverview))
|
||||
{
|
||||
desc = item.ShortOverview;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(desc))
|
||||
{
|
||||
AddValue(writer, "dc", "description", desc, NS_DC);
|
||||
|
|
|
@ -413,41 +413,41 @@ namespace Emby.Server.Core
|
|||
|
||||
var result = new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer"));
|
||||
|
||||
ServiceStack.Text.JsConfig<LiveTvProgram>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<LiveTvChannel>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<LiveTvVideoRecording>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<LiveTvAudioRecording>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Series>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Audio>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<MusicAlbum>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<MusicArtist>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<MusicGenre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<MusicVideo>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Movie>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Playlist>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<AudioPodcast>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<AudioBook>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Trailer>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<BoxSet>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Episode>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Season>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Book>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<CollectionFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Folder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Game>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<GameGenre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<GameSystem>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Genre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Person>.ExcludePropertyNames = new[] { "PlaceOfBirth", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Photo>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<PhotoAlbum>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Studio>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<UserRootFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<UserView>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Video>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Year>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Channel>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<AggregateFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "ShortOverview", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<LiveTvProgram>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<LiveTvChannel>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<LiveTvVideoRecording>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<LiveTvAudioRecording>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Series>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Audio>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<MusicAlbum>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<MusicArtist>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<MusicGenre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<MusicVideo>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Movie>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Playlist>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<AudioPodcast>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<AudioBook>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Trailer>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<BoxSet>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Episode>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Season>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Book>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<CollectionFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Folder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Game>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<GameGenre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<GameSystem>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Genre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Person>.ExcludePropertyNames = new[] { "PlaceOfBirth", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Photo>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<PhotoAlbum>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Studio>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<UserRootFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<UserView>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Video>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Year>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<Channel>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
ServiceStack.Text.JsConfig<AggregateFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -141,7 +141,6 @@ namespace Emby.Server.Core.Configuration
|
|||
{
|
||||
var newConfig = (ServerConfiguration)newConfiguration;
|
||||
|
||||
ValidatePathSubstitutions(newConfig);
|
||||
ValidateMetadataPath(newConfig);
|
||||
ValidateSslCertificate(newConfig);
|
||||
|
||||
|
@ -173,17 +172,6 @@ namespace Emby.Server.Core.Configuration
|
|||
}
|
||||
}
|
||||
|
||||
private void ValidatePathSubstitutions(ServerConfiguration newConfig)
|
||||
{
|
||||
foreach (var map in newConfig.PathSubstitutions)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(map.From) || string.IsNullOrWhiteSpace(map.To))
|
||||
{
|
||||
throw new ArgumentException("Invalid path substitution");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validates the metadata path.
|
||||
/// </summary>
|
||||
|
|
|
@ -257,7 +257,6 @@ namespace Emby.Server.Implementations.Data
|
|||
AddColumn(db, "TypedBaseItems", "SeriesId", "GUID", existingColumnNames);
|
||||
AddColumn(db, "TypedBaseItems", "SeriesSortName", "Text", existingColumnNames);
|
||||
AddColumn(db, "TypedBaseItems", "ExternalSeriesId", "Text", existingColumnNames);
|
||||
AddColumn(db, "TypedBaseItems", "ShortOverview", "Text", existingColumnNames);
|
||||
AddColumn(db, "TypedBaseItems", "Tagline", "Text", existingColumnNames);
|
||||
AddColumn(db, "TypedBaseItems", "Keywords", "Text", existingColumnNames);
|
||||
AddColumn(db, "TypedBaseItems", "ProviderIds", "Text", existingColumnNames);
|
||||
|
@ -466,7 +465,6 @@ namespace Emby.Server.Implementations.Data
|
|||
"InheritedParentalRatingValue",
|
||||
"InheritedTags",
|
||||
"ExternalSeriesId",
|
||||
"ShortOverview",
|
||||
"Tagline",
|
||||
"Keywords",
|
||||
"ProviderIds",
|
||||
|
@ -598,7 +596,6 @@ namespace Emby.Server.Implementations.Data
|
|||
"SeriesId",
|
||||
"SeriesSortName",
|
||||
"ExternalSeriesId",
|
||||
"ShortOverview",
|
||||
"Tagline",
|
||||
"Keywords",
|
||||
"ProviderIds",
|
||||
|
@ -1038,7 +1035,6 @@ namespace Emby.Server.Implementations.Data
|
|||
}
|
||||
|
||||
saveItemStatement.TryBind("@ExternalSeriesId", item.ExternalSeriesId);
|
||||
saveItemStatement.TryBind("@ShortOverview", item.ShortOverview);
|
||||
saveItemStatement.TryBind("@Tagline", item.Tagline);
|
||||
|
||||
if (item.Keywords.Count > 0)
|
||||
|
@ -1893,15 +1889,6 @@ namespace Emby.Server.Implementations.Data
|
|||
}
|
||||
index++;
|
||||
|
||||
if (query.HasField(ItemFields.ShortOverview))
|
||||
{
|
||||
if (!reader.IsDBNull(index))
|
||||
{
|
||||
item.ShortOverview = reader.GetString(index);
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
if (query.HasField(ItemFields.Taglines))
|
||||
{
|
||||
if (!reader.IsDBNull(index))
|
||||
|
|
|
@ -1052,11 +1052,6 @@ namespace Emby.Server.Implementations.Dto
|
|||
dto.OriginalTitle = item.OriginalTitle;
|
||||
}
|
||||
|
||||
if (fields.Contains(ItemFields.ShortOverview))
|
||||
{
|
||||
dto.ShortOverview = item.ShortOverview;
|
||||
}
|
||||
|
||||
if (fields.Contains(ItemFields.ParentId))
|
||||
{
|
||||
var displayParentId = item.DisplayParentId;
|
||||
|
|
|
@ -309,8 +309,8 @@
|
|||
<Project>{4f26d5d8-a7b0-42b3-ba42-7cb7d245934e}</Project>
|
||||
<Name>SocketHttpListener.Portable</Name>
|
||||
</ProjectReference>
|
||||
<Reference Include="Emby.XmlTv, Version=1.0.6193.39741, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Emby.XmlTv.1.0.3\lib\portable-net45+win8\Emby.XmlTv.dll</HintPath>
|
||||
<Reference Include="Emby.XmlTv, Version=1.0.6236.39295, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Emby.XmlTv.1.0.4\lib\portable-net45+win8\Emby.XmlTv.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="MediaBrowser.Naming, Version=1.0.6201.24431, Culture=neutral, processorArchitecture=MSIL">
|
||||
|
|
|
@ -501,7 +501,7 @@ namespace Emby.Server.Implementations.Library
|
|||
throw new ArgumentNullException("type");
|
||||
}
|
||||
|
||||
if (ConfigurationManager.Configuration.EnableLocalizedGuids && key.StartsWith(ConfigurationManager.ApplicationPaths.ProgramDataPath))
|
||||
if (key.StartsWith(ConfigurationManager.ApplicationPaths.ProgramDataPath))
|
||||
{
|
||||
// Try to normalize paths located underneath program-data in an attempt to make them more portable
|
||||
key = key.Substring(ConfigurationManager.ApplicationPaths.ProgramDataPath.Length)
|
||||
|
@ -2619,18 +2619,6 @@ namespace Emby.Server.Implementations.Library
|
|||
}
|
||||
}
|
||||
|
||||
foreach (var map in ConfigurationManager.Configuration.PathSubstitutions)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(map.From))
|
||||
{
|
||||
var substitutionResult = SubstitutePathInternal(path, map.From, map.To);
|
||||
if (substitutionResult.Item2)
|
||||
{
|
||||
return substitutionResult.Item1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
|
|
|
@ -663,7 +663,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
existingTimer.ProductionYear = updatedTimer.ProductionYear;
|
||||
existingTimer.ProgramId = updatedTimer.ProgramId;
|
||||
existingTimer.SeasonNumber = updatedTimer.SeasonNumber;
|
||||
existingTimer.ShortOverview = updatedTimer.ShortOverview;
|
||||
existingTimer.StartDate = updatedTimer.StartDate;
|
||||
existingTimer.ShowId = updatedTimer.ShowId;
|
||||
}
|
||||
|
@ -1755,7 +1754,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
{
|
||||
Name = timer.Name,
|
||||
HomePageUrl = timer.HomePageUrl,
|
||||
ShortOverview = timer.ShortOverview,
|
||||
Overview = timer.Overview,
|
||||
Genres = timer.Genres,
|
||||
CommunityRating = timer.CommunityRating,
|
||||
|
@ -1959,11 +1957,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
writer.WriteElementString("genre", genre);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(item.ShortOverview))
|
||||
{
|
||||
writer.WriteElementString("outline", item.ShortOverview);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(item.HomePageUrl))
|
||||
{
|
||||
writer.WriteElementString("website", item.HomePageUrl);
|
||||
|
|
|
@ -61,7 +61,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
timerInfo.HomePageUrl = programInfo.HomePageUrl;
|
||||
timerInfo.CommunityRating = programInfo.CommunityRating;
|
||||
timerInfo.Overview = programInfo.Overview;
|
||||
timerInfo.ShortOverview = programInfo.ShortOverview;
|
||||
timerInfo.OfficialRating = programInfo.OfficialRating;
|
||||
timerInfo.IsRepeat = programInfo.IsRepeat;
|
||||
timerInfo.SeriesId = programInfo.SeriesId;
|
||||
|
|
|
@ -479,7 +479,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
|
|||
}
|
||||
else if (details.descriptions.description100 != null)
|
||||
{
|
||||
info.ShortOverview = details.descriptions.description100[0].description;
|
||||
info.Overview = details.descriptions.description100[0].description;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -139,7 +139,6 @@ namespace Emby.Server.Implementations.LiveTv.Listings
|
|||
StartDate = GetDate(p.StartDate),
|
||||
Name = p.Title,
|
||||
Overview = p.Description,
|
||||
ShortOverview = p.Description,
|
||||
ProductionYear = !p.CopyrightDate.HasValue ? (int?)null : p.CopyrightDate.Value.Year,
|
||||
SeasonNumber = p.Episode == null ? null : p.Episode.Series,
|
||||
IsSeries = p.Episode != null,
|
||||
|
@ -153,10 +152,18 @@ namespace Emby.Server.Implementations.LiveTv.Listings
|
|||
HasImage = p.Icon != null && !String.IsNullOrEmpty(p.Icon.Source),
|
||||
OfficialRating = p.Rating != null && !String.IsNullOrEmpty(p.Rating.Value) ? p.Rating.Value : null,
|
||||
CommunityRating = p.StarRating.HasValue ? p.StarRating.Value : (float?)null,
|
||||
SeriesId = p.Episode != null ? p.Title.GetMD5().ToString("N") : null,
|
||||
ShowId = ((p.Title ?? string.Empty) + (episodeTitle ?? string.Empty)).GetMD5().ToString("N")
|
||||
SeriesId = p.Episode != null ? p.Title.GetMD5().ToString("N") : null
|
||||
};
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(p.ProgramId))
|
||||
{
|
||||
programInfo.ShowId = p.ProgramId;
|
||||
}
|
||||
else
|
||||
{
|
||||
programInfo.ShowId = ((p.Title ?? string.Empty) + (episodeTitle ?? string.Empty)).GetMD5().ToString("N");
|
||||
}
|
||||
|
||||
if (programInfo.IsMovie)
|
||||
{
|
||||
programInfo.IsSeries = false;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Emby.XmlTv" version="1.0.3" targetFramework="portable45-net45+win8" />
|
||||
<package id="Emby.XmlTv" version="1.0.4" targetFramework="portable45-net45+win8" />
|
||||
<package id="MediaBrowser.Naming" version="1.0.4" targetFramework="portable45-net45+win8" />
|
||||
<package id="SQLitePCL.pretty" version="1.1.0" targetFramework="portable45-net45+win8" />
|
||||
<package id="SQLitePCLRaw.core" version="1.1.1" targetFramework="portable45-net45+win8" />
|
||||
|
|
|
@ -276,8 +276,6 @@ namespace MediaBrowser.Api
|
|||
item.Tagline = request.Taglines.FirstOrDefault();
|
||||
}
|
||||
|
||||
item.ShortOverview = request.ShortOverview;
|
||||
|
||||
item.Keywords = request.Keywords;
|
||||
|
||||
if (request.Studios != null)
|
||||
|
|
|
@ -2704,21 +2704,25 @@ namespace MediaBrowser.Api.Playback
|
|||
//inputModifier += " -noaccurate_seek";
|
||||
}
|
||||
|
||||
foreach (var stream in state.MediaSource.MediaStreams)
|
||||
if (state.RunTimeTicks.HasValue)
|
||||
{
|
||||
if (!stream.IsExternal && stream.Type != MediaStreamType.Subtitle)
|
||||
foreach (var stream in state.MediaSource.MediaStreams)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(stream.Codec) && stream.Index != -1)
|
||||
if (!stream.IsExternal && stream.Type != MediaStreamType.Subtitle)
|
||||
{
|
||||
var decoder = GetDecoderFromCodec(stream.Codec);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(decoder))
|
||||
if (!string.IsNullOrWhiteSpace(stream.Codec) && stream.Index != -1)
|
||||
{
|
||||
inputModifier += " -codec:" + stream.Index.ToString(UsCulture) + " " + decoder;
|
||||
var decoder = GetDecoderFromCodec(stream.Codec);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(decoder))
|
||||
{
|
||||
inputModifier += " -codec:" + stream.Index.ToString(UsCulture) + " " + decoder;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//var videoStream = state.VideoStream;
|
||||
//if (videoStream != null && !string.IsNullOrWhiteSpace(videoStream.Codec))
|
||||
//{
|
||||
|
|
|
@ -111,7 +111,6 @@ namespace MediaBrowser.Api
|
|||
|
||||
private void SetWizardFinishValues(ServerConfiguration config)
|
||||
{
|
||||
config.EnableLocalizedGuids = true;
|
||||
config.EnableStandaloneMusicKeys = true;
|
||||
config.EnableCaseSensitiveItemIds = true;
|
||||
config.EnableFolderView = true;
|
||||
|
|
|
@ -84,7 +84,6 @@ namespace MediaBrowser.Controller.Entities
|
|||
|
||||
public long? Size { get; set; }
|
||||
public string Container { get; set; }
|
||||
public string ShortOverview { get; set; }
|
||||
[IgnoreDataMember]
|
||||
public string Tagline { get; set; }
|
||||
|
||||
|
@ -2263,11 +2262,6 @@ namespace MediaBrowser.Controller.Entities
|
|||
ownedItem.Overview = item.Overview;
|
||||
newOptions.ForceSave = true;
|
||||
}
|
||||
if (!string.Equals(item.ShortOverview, ownedItem.ShortOverview, StringComparison.Ordinal))
|
||||
{
|
||||
ownedItem.ShortOverview = item.ShortOverview;
|
||||
newOptions.ForceSave = true;
|
||||
}
|
||||
if (!string.Equals(item.OfficialRating, ownedItem.OfficialRating, StringComparison.Ordinal))
|
||||
{
|
||||
ownedItem.OfficialRating = item.OfficialRating;
|
||||
|
|
|
@ -172,7 +172,6 @@ namespace MediaBrowser.Controller.Entities
|
|||
case ItemFields.ProductionLocations:
|
||||
case ItemFields.Keywords:
|
||||
case ItemFields.Taglines:
|
||||
case ItemFields.ShortOverview:
|
||||
case ItemFields.CustomRating:
|
||||
case ItemFields.DateCreated:
|
||||
case ItemFields.SortName:
|
||||
|
|
|
@ -114,7 +114,6 @@ namespace MediaBrowser.Controller.LiveTv
|
|||
public bool IsRepeat { get; set; }
|
||||
public string HomePageUrl { get; set; }
|
||||
public float? CommunityRating { get; set; }
|
||||
public string ShortOverview { get; set; }
|
||||
public string OfficialRating { get; set; }
|
||||
public List<string> Genres { get; set; }
|
||||
public string RecordingPath { get; set; }
|
||||
|
|
|
@ -294,18 +294,6 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||
break;
|
||||
}
|
||||
|
||||
case "ShortOverview":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val))
|
||||
{
|
||||
item.ShortOverview = val;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case "CriticRatingSummary":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
|
|
@ -85,7 +85,6 @@ namespace MediaBrowser.LocalMetadata.Savers
|
|||
"MusicbrainzId",
|
||||
|
||||
"Overview",
|
||||
"ShortOverview",
|
||||
"Persons",
|
||||
"PlotKeywords",
|
||||
"PremiereDate",
|
||||
|
@ -351,10 +350,6 @@ namespace MediaBrowser.LocalMetadata.Savers
|
|||
{
|
||||
writer.WriteElementString("OriginalTitle", item.OriginalTitle);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(item.ShortOverview))
|
||||
{
|
||||
writer.WriteElementString("ShortOverview", item.ShortOverview);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(item.CustomRating))
|
||||
{
|
||||
writer.WriteElementString("CustomRating", item.CustomRating);
|
||||
|
|
|
@ -90,13 +90,11 @@ namespace MediaBrowser.MediaEncoding.Probing
|
|||
}
|
||||
|
||||
FetchGenres(info, tags);
|
||||
var shortOverview = FFProbeHelpers.GetDictionaryValue(tags, "description");
|
||||
var overview = FFProbeHelpers.GetDictionaryValue(tags, "synopsis");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(overview))
|
||||
{
|
||||
overview = shortOverview;
|
||||
shortOverview = null;
|
||||
overview = FFProbeHelpers.GetDictionaryValue(tags, "description");
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(overview))
|
||||
{
|
||||
|
@ -108,11 +106,6 @@ namespace MediaBrowser.MediaEncoding.Probing
|
|||
info.Overview = overview;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(shortOverview))
|
||||
{
|
||||
info.ShortOverview = shortOverview;
|
||||
}
|
||||
|
||||
var title = FFProbeHelpers.GetDictionaryValue(tags, "title");
|
||||
if (!string.IsNullOrWhiteSpace(title))
|
||||
{
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
namespace MediaBrowser.Model.Configuration
|
||||
{
|
||||
public class PathSubstitution
|
||||
{
|
||||
public string From { get; set; }
|
||||
public string To { get; set; }
|
||||
}
|
||||
}
|
|
@ -163,8 +163,6 @@ namespace MediaBrowser.Model.Configuration
|
|||
public bool SkipDeserializationForPrograms { get; set; }
|
||||
public bool SkipDeserializationForAudio { get; set; }
|
||||
|
||||
public PathSubstitution[] PathSubstitutions { get; set; }
|
||||
|
||||
public string ServerName { get; set; }
|
||||
public string WanDdns { get; set; }
|
||||
|
||||
|
@ -182,7 +180,6 @@ namespace MediaBrowser.Model.Configuration
|
|||
|
||||
public bool EnableAnonymousUsageReporting { get; set; }
|
||||
public bool EnableStandaloneMusicKeys { get; set; }
|
||||
public bool EnableLocalizedGuids { get; set; }
|
||||
public bool EnableFolderView { get; set; }
|
||||
public bool EnableGroupingIntoCollections { get; set; }
|
||||
public bool DisplaySpecialsWithinSeasons { get; set; }
|
||||
|
@ -205,7 +202,6 @@ namespace MediaBrowser.Model.Configuration
|
|||
Migrations = new string[] { };
|
||||
ImageExtractionTimeoutMs = 0;
|
||||
|
||||
EnableLocalizedGuids = true;
|
||||
DisplaySpecialsWithinSeasons = true;
|
||||
EnableExternalContentInSuggestions = true;
|
||||
|
||||
|
@ -231,7 +227,6 @@ namespace MediaBrowser.Model.Configuration
|
|||
|
||||
LibraryMonitorDelay = 60;
|
||||
|
||||
PathSubstitutions = new PathSubstitution[] { };
|
||||
ContentTypes = new NameValuePair[] { };
|
||||
|
||||
PreferredMetadataLanguage = "en";
|
||||
|
|
|
@ -211,12 +211,6 @@ namespace MediaBrowser.Model.Dto
|
|||
/// <value>The overview.</value>
|
||||
public string Overview { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the short overview.
|
||||
/// </summary>
|
||||
/// <value>The short overview.</value>
|
||||
public string ShortOverview { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the taglines.
|
||||
/// </summary>
|
||||
|
|
|
@ -198,7 +198,6 @@
|
|||
<Compile Include="Notifications\NotificationOption.cs" />
|
||||
<Compile Include="Notifications\NotificationOptions.cs" />
|
||||
<Compile Include="Notifications\NotificationType.cs" />
|
||||
<Compile Include="Configuration\PathSubstitution.cs" />
|
||||
<Compile Include="Notifications\SendToUserType.cs" />
|
||||
<Compile Include="Configuration\ServerConfiguration.cs" />
|
||||
<Compile Include="Playlists\PlaylistCreationRequest.cs" />
|
||||
|
|
|
@ -51,11 +51,6 @@ namespace MediaBrowser.Model.MediaInfo
|
|||
/// </summary>
|
||||
/// <value>The overview.</value>
|
||||
public string Overview { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets the short overview.
|
||||
/// </summary>
|
||||
/// <value>The short overview.</value>
|
||||
public string ShortOverview { get; set; }
|
||||
|
||||
public MediaInfo()
|
||||
{
|
||||
|
|
|
@ -188,11 +188,6 @@
|
|||
/// </summary>
|
||||
Settings,
|
||||
|
||||
/// <summary>
|
||||
/// The short overview
|
||||
/// </summary>
|
||||
ShortOverview,
|
||||
|
||||
/// <summary>
|
||||
/// The screenshot image tags
|
||||
/// </summary>
|
||||
|
|
|
@ -200,7 +200,6 @@ namespace MediaBrowser.Providers.Manager
|
|||
MergeCriticRating(source, target, lockedFields, replaceData);
|
||||
MergeAwards(source, target, lockedFields, replaceData);
|
||||
MergeTrailers(source, target, lockedFields, replaceData);
|
||||
MergeShortOverview(source, target, lockedFields, replaceData);
|
||||
|
||||
if (mergeMetadataSettings)
|
||||
{
|
||||
|
@ -234,14 +233,6 @@ namespace MediaBrowser.Providers.Manager
|
|||
}
|
||||
}
|
||||
|
||||
private static void MergeShortOverview(BaseItem source, BaseItem target, List<MetadataFields> lockedFields, bool replaceData)
|
||||
{
|
||||
if (replaceData || string.IsNullOrEmpty(target.ShortOverview))
|
||||
{
|
||||
target.ShortOverview = source.ShortOverview;
|
||||
}
|
||||
}
|
||||
|
||||
private static void MergeAlbumArtist(BaseItem source, BaseItem target, List<MetadataFields> lockedFields, bool replaceData)
|
||||
{
|
||||
var sourceHasAlbumArtist = source as IHasAlbumArtist;
|
||||
|
|
|
@ -440,11 +440,6 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
video.Overview = data.Overview;
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(video.ShortOverview) || isFullRefresh)
|
||||
{
|
||||
video.ShortOverview = data.ShortOverview;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task FetchPeople(Video video, Model.MediaInfo.MediaInfo data, MetadataRefreshOptions options)
|
||||
|
|
|
@ -294,7 +294,7 @@ namespace MediaBrowser.Providers.Omdb
|
|||
}
|
||||
}
|
||||
|
||||
var url = string.Format("https://www.omdbapi.com/?i={0}&tomatoes=true", imdbParam);
|
||||
var url = string.Format("https://www.omdbapi.com/?i={0}&plot=full&tomatoes=true&r=json", imdbParam);
|
||||
|
||||
using (var stream = await _httpClient.Get(new HttpRequestOptions
|
||||
{
|
||||
|
@ -421,7 +421,7 @@ namespace MediaBrowser.Providers.Omdb
|
|||
}
|
||||
|
||||
// Imdb plots are usually pretty short
|
||||
item.ShortOverview = result.Plot;
|
||||
item.Overview = result.Plot;
|
||||
|
||||
//if (!string.IsNullOrWhiteSpace(result.Director))
|
||||
//{
|
||||
|
|
|
@ -76,6 +76,11 @@ namespace MediaBrowser.WebDashboard.Api
|
|||
public string V { get; set; }
|
||||
}
|
||||
|
||||
[Route("/favicon.ico", "GET")]
|
||||
public class GetFavIcon
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Class DashboardService
|
||||
/// </summary>
|
||||
|
@ -134,6 +139,14 @@ namespace MediaBrowser.WebDashboard.Api
|
|||
_memoryStreamFactory = memoryStreamFactory;
|
||||
}
|
||||
|
||||
public object Get(GetFavIcon request)
|
||||
{
|
||||
return Get(new GetDashboardResource
|
||||
{
|
||||
ResourceName = "favicon.ico"
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the specified request.
|
||||
/// </summary>
|
||||
|
@ -323,43 +336,6 @@ namespace MediaBrowser.WebDashboard.Api
|
|||
return new PackageCreator(_fileSystem, _logger, _serverConfigurationManager, _memoryStreamFactory);
|
||||
}
|
||||
|
||||
private List<string> GetDeployIgnoreExtensions()
|
||||
{
|
||||
var list = new List<string>();
|
||||
|
||||
list.Add(".log");
|
||||
list.Add(".txt");
|
||||
list.Add(".map");
|
||||
list.Add(".md");
|
||||
list.Add(".gz");
|
||||
list.Add(".bat");
|
||||
list.Add(".sh");
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private List<Tuple<string, bool>> GetDeployIgnoreFilenames()
|
||||
{
|
||||
var list = new List<Tuple<string, bool>>();
|
||||
|
||||
list.Add(new Tuple<string, bool>("copying", true));
|
||||
list.Add(new Tuple<string, bool>("license", true));
|
||||
list.Add(new Tuple<string, bool>("license-mit", true));
|
||||
list.Add(new Tuple<string, bool>("gitignore", false));
|
||||
list.Add(new Tuple<string, bool>("npmignore", false));
|
||||
list.Add(new Tuple<string, bool>("jshintrc", false));
|
||||
list.Add(new Tuple<string, bool>("gruntfile", false));
|
||||
list.Add(new Tuple<string, bool>("bowerrc", false));
|
||||
list.Add(new Tuple<string, bool>("jscsrc", false));
|
||||
list.Add(new Tuple<string, bool>("hero.svg", false));
|
||||
list.Add(new Tuple<string, bool>("travis.yml", false));
|
||||
list.Add(new Tuple<string, bool>("build.js", false));
|
||||
list.Add(new Tuple<string, bool>("editorconfig", false));
|
||||
list.Add(new Tuple<string, bool>("gitattributes", false));
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public async Task<object> Get(GetDashboardPackage request)
|
||||
{
|
||||
var mode = request.Mode;
|
||||
|
@ -388,41 +364,11 @@ namespace MediaBrowser.WebDashboard.Api
|
|||
// Try to trim the output size a bit
|
||||
var bowerPath = Path.Combine(path, "bower_components");
|
||||
|
||||
foreach (var ext in GetDeployIgnoreExtensions())
|
||||
{
|
||||
DeleteFilesByExtension(bowerPath, ext);
|
||||
}
|
||||
|
||||
DeleteFilesByExtension(bowerPath, ".json", "strings\\");
|
||||
|
||||
foreach (var ignore in GetDeployIgnoreFilenames())
|
||||
{
|
||||
DeleteFilesByName(bowerPath, ignore.Item1, ignore.Item2);
|
||||
}
|
||||
|
||||
DeleteFoldersByName(bowerPath, "demo");
|
||||
DeleteFoldersByName(bowerPath, "test");
|
||||
DeleteFoldersByName(bowerPath, "guides");
|
||||
DeleteFoldersByName(bowerPath, "grunt");
|
||||
DeleteFoldersByName(bowerPath, "rollups");
|
||||
|
||||
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
DeleteFoldersByName(Path.Combine(bowerPath, "emby-webcomponents", "fonts"), "montserrat");
|
||||
DeleteFoldersByName(Path.Combine(bowerPath, "emby-webcomponents", "fonts"), "opensans");
|
||||
DeleteFoldersByName(Path.Combine(bowerPath, "emby-webcomponents", "fonts"), "roboto");
|
||||
}
|
||||
|
||||
_fileSystem.DeleteDirectory(Path.Combine(bowerPath, "jquery", "src"), true);
|
||||
|
||||
DeleteCryptoFiles(Path.Combine(bowerPath, "cryptojslib", "components"));
|
||||
|
||||
DeleteFoldersByName(Path.Combine(bowerPath, "jquery"), "src");
|
||||
DeleteFoldersByName(Path.Combine(bowerPath, "jstree"), "src");
|
||||
//DeleteFoldersByName(Path.Combine(bowerPath, "Sortable"), "meteor");
|
||||
//DeleteFoldersByName(Path.Combine(bowerPath, "Sortable"), "st");
|
||||
//DeleteFoldersByName(Path.Combine(bowerPath, "Swiper"), "src");
|
||||
|
||||
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
// Delete things that are unneeded in an attempt to keep the output as trim as possible
|
||||
|
@ -431,58 +377,9 @@ namespace MediaBrowser.WebDashboard.Api
|
|||
|
||||
await DumpHtml(creator.DashboardUIPath, path, mode, culture, appVersion);
|
||||
|
||||
await DumpFile("css/all.css", Path.Combine(path, "css", "all.css"), mode, culture, appVersion).ConfigureAwait(false);
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
private void DeleteCryptoFiles(string path)
|
||||
{
|
||||
var files = _fileSystem.GetFiles(path)
|
||||
.ToList();
|
||||
|
||||
var keepFiles = new[] { "core-min.js", "md5-min.js", "sha1-min.js" };
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
if (!keepFiles.Contains(file.Name, StringComparer.OrdinalIgnoreCase))
|
||||
{
|
||||
_fileSystem.DeleteFile(file.FullName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteFilesByExtension(string path, string extension, string exclude = null)
|
||||
{
|
||||
var files = _fileSystem.GetFiles(path, true)
|
||||
.Where(i => string.Equals(i.Extension, extension, StringComparison.OrdinalIgnoreCase))
|
||||
.ToList();
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(exclude))
|
||||
{
|
||||
if (file.FullName.IndexOf(exclude, StringComparison.OrdinalIgnoreCase) != -1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
_fileSystem.DeleteFile(file.FullName);
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteFilesByName(string path, string name, bool exact = false)
|
||||
{
|
||||
var files = _fileSystem.GetFiles(path, true)
|
||||
.Where(i => string.Equals(i.Name, name, StringComparison.OrdinalIgnoreCase) || (!exact && i.Name.IndexOf(name, StringComparison.OrdinalIgnoreCase) != -1))
|
||||
.ToList();
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
_fileSystem.DeleteFile(file.FullName);
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteFoldersByName(string path, string name)
|
||||
{
|
||||
var directories = _fileSystem.GetDirectories(path, true)
|
||||
|
|
|
@ -33,16 +33,7 @@ namespace MediaBrowser.WebDashboard.Api
|
|||
string localizationCulture,
|
||||
string appVersion)
|
||||
{
|
||||
Stream resourceStream;
|
||||
|
||||
if (path.Equals("css/all.css", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
resourceStream = await GetAllCss().ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
resourceStream = GetRawResourceStream(path);
|
||||
}
|
||||
var resourceStream = GetRawResourceStream(path);
|
||||
|
||||
if (resourceStream != null)
|
||||
{
|
||||
|
@ -267,7 +258,10 @@ namespace MediaBrowser.WebDashboard.Api
|
|||
|
||||
var files = new[]
|
||||
{
|
||||
"css/all.css" + versionString
|
||||
"css/site.css" + versionString,
|
||||
"css/librarymenu.css" + versionString,
|
||||
"css/librarybrowser.css" + versionString,
|
||||
"thirdparty/paper-button-style.css" + versionString
|
||||
};
|
||||
|
||||
var tags = files.Select(s => string.Format("<link rel=\"stylesheet\" href=\"{0}\" async />", s)).ToArray();
|
||||
|
@ -318,48 +312,6 @@ namespace MediaBrowser.WebDashboard.Api
|
|||
return builder.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets all CSS.
|
||||
/// </summary>
|
||||
/// <returns>Task{Stream}.</returns>
|
||||
private async Task<Stream> GetAllCss()
|
||||
{
|
||||
var memoryStream = _memoryStreamFactory.CreateNew();
|
||||
|
||||
var files = new[]
|
||||
{
|
||||
"css/site.css",
|
||||
"css/librarymenu.css",
|
||||
"css/librarybrowser.css",
|
||||
"thirdparty/paper-button-style.css"
|
||||
};
|
||||
|
||||
var builder = new StringBuilder();
|
||||
|
||||
foreach (var file in files)
|
||||
{
|
||||
var path = GetDashboardResourcePath(file);
|
||||
|
||||
using (var fs = _fileSystem.GetFileStream(path, FileOpenMode.Open, FileAccessMode.Read, FileShareMode.ReadWrite, true))
|
||||
{
|
||||
using (var streamReader = new StreamReader(fs))
|
||||
{
|
||||
var text = await streamReader.ReadToEndAsync().ConfigureAwait(false);
|
||||
builder.Append(text);
|
||||
builder.Append(Environment.NewLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var css = builder.ToString();
|
||||
|
||||
var bytes = Encoding.UTF8.GetBytes(css);
|
||||
memoryStream.Write(bytes, 0, bytes.Length);
|
||||
|
||||
memoryStream.Position = 0;
|
||||
return memoryStream;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the raw resource stream.
|
||||
/// </summary>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -394,17 +394,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||
break;
|
||||
}
|
||||
|
||||
case "outline":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val))
|
||||
{
|
||||
item.ShortOverview = val;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case "biography":
|
||||
case "plot":
|
||||
case "review":
|
||||
|
|
|
@ -457,7 +457,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
|||
|
||||
if (item is Video)
|
||||
{
|
||||
var outline = (item.ShortOverview ?? string.Empty)
|
||||
var outline = (item.Tagline ?? item.Overview ?? string.Empty)
|
||||
.StripHtml()
|
||||
.Replace(""", "'");
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user