ensure custom css is loaded last
This commit is contained in:
parent
e6b22f35e5
commit
dc7a59c73a
|
@ -434,41 +434,41 @@ namespace Emby.Server.Core
|
||||||
|
|
||||||
var result = new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer"));
|
var result = new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer"));
|
||||||
|
|
||||||
ServiceStack.Text.JsConfig<LiveTvProgram>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<LiveTvProgram>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<LiveTvChannel>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<LiveTvChannel>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<LiveTvVideoRecording>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<LiveTvVideoRecording>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<LiveTvAudioRecording>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "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", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Series>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Series>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Audio>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "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", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<MusicAlbum>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<MusicAlbum>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<MusicArtist>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<MusicArtist>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<MusicGenre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<MusicGenre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<MusicVideo>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<MusicVideo>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Movie>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Movie>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Playlist>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Playlist>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<AudioPodcast>.ExcludePropertyNames = new[] { "Artists", "AlbumArtists", "ChannelMediaSources", "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", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<AudioBook>.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", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Trailer>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Trailer>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<BoxSet>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<BoxSet>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Episode>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Episode>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Season>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Season>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Book>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Book>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<CollectionFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<CollectionFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Folder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Folder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Game>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Game>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<GameGenre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<GameGenre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<GameSystem>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<GameSystem>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Genre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Genre>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Person>.ExcludePropertyNames = new[] { "PlaceOfBirth", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Person>.ExcludePropertyNames = new[] { "PlaceOfBirth", "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Photo>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Photo>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<PhotoAlbum>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<PhotoAlbum>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Studio>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Studio>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<UserRootFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<UserRootFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<UserView>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<UserView>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Video>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Video>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Year>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Year>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<Channel>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<Channel>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
ServiceStack.Text.JsConfig<AggregateFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "Keywords", "ExtraType" };
|
ServiceStack.Text.JsConfig<AggregateFolder>.ExcludePropertyNames = new[] { "ProviderIds", "ImageInfos", "ProductionLocations", "ThemeSongIds", "ThemeVideoIds", "TotalBitrate", "Taglines", "ExtraType" };
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -251,7 +251,6 @@ namespace Emby.Server.Implementations.Data
|
||||||
AddColumn(db, "TypedBaseItems", "SeriesId", "GUID", existingColumnNames);
|
AddColumn(db, "TypedBaseItems", "SeriesId", "GUID", existingColumnNames);
|
||||||
AddColumn(db, "TypedBaseItems", "ExternalSeriesId", "Text", existingColumnNames);
|
AddColumn(db, "TypedBaseItems", "ExternalSeriesId", "Text", existingColumnNames);
|
||||||
AddColumn(db, "TypedBaseItems", "Tagline", "Text", existingColumnNames);
|
AddColumn(db, "TypedBaseItems", "Tagline", "Text", existingColumnNames);
|
||||||
AddColumn(db, "TypedBaseItems", "Keywords", "Text", existingColumnNames);
|
|
||||||
AddColumn(db, "TypedBaseItems", "ProviderIds", "Text", existingColumnNames);
|
AddColumn(db, "TypedBaseItems", "ProviderIds", "Text", existingColumnNames);
|
||||||
AddColumn(db, "TypedBaseItems", "Images", "Text", existingColumnNames);
|
AddColumn(db, "TypedBaseItems", "Images", "Text", existingColumnNames);
|
||||||
AddColumn(db, "TypedBaseItems", "ProductionLocations", "Text", existingColumnNames);
|
AddColumn(db, "TypedBaseItems", "ProductionLocations", "Text", existingColumnNames);
|
||||||
|
@ -454,7 +453,6 @@ namespace Emby.Server.Implementations.Data
|
||||||
"InheritedTags",
|
"InheritedTags",
|
||||||
"ExternalSeriesId",
|
"ExternalSeriesId",
|
||||||
"Tagline",
|
"Tagline",
|
||||||
"Keywords",
|
|
||||||
"ProviderIds",
|
"ProviderIds",
|
||||||
"Images",
|
"Images",
|
||||||
"ProductionLocations",
|
"ProductionLocations",
|
||||||
|
@ -578,7 +576,6 @@ namespace Emby.Server.Implementations.Data
|
||||||
"SeriesId",
|
"SeriesId",
|
||||||
"ExternalSeriesId",
|
"ExternalSeriesId",
|
||||||
"Tagline",
|
"Tagline",
|
||||||
"Keywords",
|
|
||||||
"ProviderIds",
|
"ProviderIds",
|
||||||
"Images",
|
"Images",
|
||||||
"ProductionLocations",
|
"ProductionLocations",
|
||||||
|
@ -1011,15 +1008,6 @@ namespace Emby.Server.Implementations.Data
|
||||||
saveItemStatement.TryBind("@ExternalSeriesId", item.ExternalSeriesId);
|
saveItemStatement.TryBind("@ExternalSeriesId", item.ExternalSeriesId);
|
||||||
saveItemStatement.TryBind("@Tagline", item.Tagline);
|
saveItemStatement.TryBind("@Tagline", item.Tagline);
|
||||||
|
|
||||||
if (item.Keywords.Count > 0)
|
|
||||||
{
|
|
||||||
saveItemStatement.TryBind("@Keywords", string.Join("|", item.Keywords.ToArray()));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
saveItemStatement.TryBindNull("@Keywords");
|
|
||||||
}
|
|
||||||
|
|
||||||
saveItemStatement.TryBind("@ProviderIds", SerializeProviderIds(item));
|
saveItemStatement.TryBind("@ProviderIds", SerializeProviderIds(item));
|
||||||
saveItemStatement.TryBind("@Images", SerializeImages(item));
|
saveItemStatement.TryBind("@Images", SerializeImages(item));
|
||||||
|
|
||||||
|
@ -1874,15 +1862,6 @@ namespace Emby.Server.Implementations.Data
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HasField(query, ItemFields.Keywords))
|
|
||||||
{
|
|
||||||
if (!reader.IsDBNull(index))
|
|
||||||
{
|
|
||||||
item.Keywords = reader.GetString(index).Split('|').Where(i => !string.IsNullOrWhiteSpace(i)).ToList();
|
|
||||||
}
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!reader.IsDBNull(index))
|
if (!reader.IsDBNull(index))
|
||||||
{
|
{
|
||||||
DeserializeProviderIds(reader.GetString(index), item);
|
DeserializeProviderIds(reader.GetString(index), item);
|
||||||
|
@ -2287,7 +2266,6 @@ namespace Emby.Server.Implementations.Data
|
||||||
switch (name)
|
switch (name)
|
||||||
{
|
{
|
||||||
case ItemFields.HomePageUrl:
|
case ItemFields.HomePageUrl:
|
||||||
case ItemFields.Keywords:
|
|
||||||
case ItemFields.DisplayMediaType:
|
case ItemFields.DisplayMediaType:
|
||||||
case ItemFields.CustomRating:
|
case ItemFields.CustomRating:
|
||||||
case ItemFields.ProductionLocations:
|
case ItemFields.ProductionLocations:
|
||||||
|
@ -4221,23 +4199,6 @@ namespace Emby.Server.Implementations.Data
|
||||||
whereClauses.Add(clause);
|
whereClauses.Add(clause);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query.Keywords.Length > 0)
|
|
||||||
{
|
|
||||||
var clauses = new List<string>();
|
|
||||||
var index = 0;
|
|
||||||
foreach (var item in query.Keywords)
|
|
||||||
{
|
|
||||||
clauses.Add("@Keyword" + index + " in (select CleanValue from itemvalues where ItemId=Guid and Type=5)");
|
|
||||||
if (statement != null)
|
|
||||||
{
|
|
||||||
statement.TryBind("@Keyword" + index, GetCleanValue(item));
|
|
||||||
}
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
var clause = "(" + string.Join(" OR ", clauses.ToArray()) + ")";
|
|
||||||
whereClauses.Add(clause);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (query.OfficialRatings.Length > 0)
|
if (query.OfficialRatings.Length > 0)
|
||||||
{
|
{
|
||||||
var clauses = new List<string>();
|
var clauses = new List<string>();
|
||||||
|
@ -5435,7 +5396,6 @@ namespace Emby.Server.Implementations.Data
|
||||||
list.AddRange(item.Genres.Select(i => new Tuple<int, string>(2, i)));
|
list.AddRange(item.Genres.Select(i => new Tuple<int, string>(2, i)));
|
||||||
list.AddRange(item.Studios.Select(i => new Tuple<int, string>(3, i)));
|
list.AddRange(item.Studios.Select(i => new Tuple<int, string>(3, i)));
|
||||||
list.AddRange(item.Tags.Select(i => new Tuple<int, string>(4, i)));
|
list.AddRange(item.Tags.Select(i => new Tuple<int, string>(4, i)));
|
||||||
list.AddRange(item.Keywords.Select(i => new Tuple<int, string>(5, i)));
|
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
|
@ -894,11 +894,6 @@ namespace Emby.Server.Implementations.Dto
|
||||||
dto.Tags = item.Tags;
|
dto.Tags = item.Tags;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fields.Contains(ItemFields.Keywords))
|
|
||||||
{
|
|
||||||
dto.Keywords = item.Keywords;
|
|
||||||
}
|
|
||||||
|
|
||||||
var hasAspectRatio = item as IHasAspectRatio;
|
var hasAspectRatio = item as IHasAspectRatio;
|
||||||
if (hasAspectRatio != null)
|
if (hasAspectRatio != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1675,7 +1675,6 @@ namespace Emby.Server.Implementations.Session
|
||||||
dtoOptions.Fields.Remove(ItemFields.ExternalEtag);
|
dtoOptions.Fields.Remove(ItemFields.ExternalEtag);
|
||||||
dtoOptions.Fields.Remove(ItemFields.InheritedParentalRatingValue);
|
dtoOptions.Fields.Remove(ItemFields.InheritedParentalRatingValue);
|
||||||
dtoOptions.Fields.Remove(ItemFields.ItemCounts);
|
dtoOptions.Fields.Remove(ItemFields.ItemCounts);
|
||||||
dtoOptions.Fields.Remove(ItemFields.Keywords);
|
|
||||||
dtoOptions.Fields.Remove(ItemFields.MediaSourceCount);
|
dtoOptions.Fields.Remove(ItemFields.MediaSourceCount);
|
||||||
dtoOptions.Fields.Remove(ItemFields.MediaStreams);
|
dtoOptions.Fields.Remove(ItemFields.MediaStreams);
|
||||||
dtoOptions.Fields.Remove(ItemFields.MediaSources);
|
dtoOptions.Fields.Remove(ItemFields.MediaSources);
|
||||||
|
|
|
@ -268,8 +268,6 @@ namespace MediaBrowser.Api
|
||||||
item.Tagline = request.Taglines.FirstOrDefault();
|
item.Tagline = request.Taglines.FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
item.Keywords = request.Keywords;
|
|
||||||
|
|
||||||
if (request.Studios != null)
|
if (request.Studios != null)
|
||||||
{
|
{
|
||||||
item.Studios = request.Studios.Select(x => x.Name).ToList();
|
item.Studios = request.Studios.Select(x => x.Name).ToList();
|
||||||
|
|
|
@ -142,11 +142,6 @@ namespace MediaBrowser.Api
|
||||||
return item.Tags;
|
return item.Tags;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IEnumerable<string> GetKeywords(BaseItem item)
|
|
||||||
{
|
|
||||||
return item.Keywords;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the similiarity score.
|
/// Gets the similiarity score.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -170,9 +165,6 @@ namespace MediaBrowser.Api
|
||||||
// Find common tags
|
// Find common tags
|
||||||
points += GetTags(item1).Where(i => GetTags(item2).Contains(i, StringComparer.OrdinalIgnoreCase)).Sum(i => 10);
|
points += GetTags(item1).Where(i => GetTags(item2).Contains(i, StringComparer.OrdinalIgnoreCase)).Sum(i => 10);
|
||||||
|
|
||||||
// Find common keywords
|
|
||||||
points += GetKeywords(item1).Where(i => GetKeywords(item2).Contains(i, StringComparer.OrdinalIgnoreCase)).Sum(i => 10);
|
|
||||||
|
|
||||||
// Find common studios
|
// Find common studios
|
||||||
points += item1.Studios.Where(i => item2.Studios.Contains(i, StringComparer.OrdinalIgnoreCase)).Sum(i => 3);
|
points += item1.Studios.Where(i => item2.Studios.Contains(i, StringComparer.OrdinalIgnoreCase)).Sum(i => 3);
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,6 @@ namespace MediaBrowser.Controller.Entities
|
||||||
{
|
{
|
||||||
ThemeSongIds = new List<Guid>();
|
ThemeSongIds = new List<Guid>();
|
||||||
ThemeVideoIds = new List<Guid>();
|
ThemeVideoIds = new List<Guid>();
|
||||||
Keywords = new List<string>();
|
|
||||||
Tags = new List<string>();
|
Tags = new List<string>();
|
||||||
Genres = new List<string>();
|
Genres = new List<string>();
|
||||||
Studios = new List<string>();
|
Studios = new List<string>();
|
||||||
|
@ -881,7 +880,6 @@ namespace MediaBrowser.Controller.Entities
|
||||||
[IgnoreDataMember]
|
[IgnoreDataMember]
|
||||||
public List<string> Tags { get; set; }
|
public List<string> Tags { get; set; }
|
||||||
|
|
||||||
public List<string> Keywords { get; set; }
|
|
||||||
public List<string> ProductionLocations { get; set; }
|
public List<string> ProductionLocations { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -2279,11 +2277,6 @@ namespace MediaBrowser.Controller.Entities
|
||||||
newOptions.ForceSave = true;
|
newOptions.ForceSave = true;
|
||||||
ownedItem.ProductionLocations = item.ProductionLocations.ToList();
|
ownedItem.ProductionLocations = item.ProductionLocations.ToList();
|
||||||
}
|
}
|
||||||
if (!item.Keywords.SequenceEqual(ownedItem.Keywords, StringComparer.Ordinal))
|
|
||||||
{
|
|
||||||
newOptions.ForceSave = true;
|
|
||||||
ownedItem.Keywords = item.Keywords.ToList();
|
|
||||||
}
|
|
||||||
if (item.CommunityRating != ownedItem.CommunityRating)
|
if (item.CommunityRating != ownedItem.CommunityRating)
|
||||||
{
|
{
|
||||||
ownedItem.CommunityRating = item.CommunityRating;
|
ownedItem.CommunityRating = item.CommunityRating;
|
||||||
|
|
|
@ -38,7 +38,6 @@ namespace MediaBrowser.Controller.Entities
|
||||||
public string[] ExcludeTags { get; set; }
|
public string[] ExcludeTags { get; set; }
|
||||||
public string[] ExcludeInheritedTags { get; set; }
|
public string[] ExcludeInheritedTags { get; set; }
|
||||||
public string[] Genres { get; set; }
|
public string[] Genres { get; set; }
|
||||||
public string[] Keywords { get; set; }
|
|
||||||
|
|
||||||
public bool? IsSpecialSeason { get; set; }
|
public bool? IsSpecialSeason { get; set; }
|
||||||
public bool? IsMissing { get; set; }
|
public bool? IsMissing { get; set; }
|
||||||
|
@ -194,7 +193,6 @@ namespace MediaBrowser.Controller.Entities
|
||||||
OfficialRatings = new string[] { };
|
OfficialRatings = new string[] { };
|
||||||
SortBy = new string[] { };
|
SortBy = new string[] { };
|
||||||
MediaTypes = new string[] { };
|
MediaTypes = new string[] { };
|
||||||
Keywords = new string[] { };
|
|
||||||
IncludeItemTypes = new string[] { };
|
IncludeItemTypes = new string[] { };
|
||||||
ExcludeItemTypes = new string[] { };
|
ExcludeItemTypes = new string[] { };
|
||||||
Genres = new string[] { };
|
Genres = new string[] { };
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Entities
|
|
||||||
{
|
|
||||||
public static class KeywordExtensions
|
|
||||||
{
|
|
||||||
public static void AddKeyword(this BaseItem item, string name)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(name))
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException("name");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!item.Keywords.Contains(name, StringComparer.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
item.Keywords.Add(name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -15,7 +15,6 @@ namespace MediaBrowser.Controller.Entities
|
||||||
public Trailer()
|
public Trailer()
|
||||||
{
|
{
|
||||||
RemoteTrailers = new List<MediaUrl>();
|
RemoteTrailers = new List<MediaUrl>();
|
||||||
Keywords = new List<string>();
|
|
||||||
TrailerTypes = new List<TrailerType> { TrailerType.LocalTrailer };
|
TrailerTypes = new List<TrailerType> { TrailerType.LocalTrailer };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,6 @@
|
||||||
<Compile Include="Entities\IHasDisplayOrder.cs" />
|
<Compile Include="Entities\IHasDisplayOrder.cs" />
|
||||||
<Compile Include="Entities\IHasId.cs" />
|
<Compile Include="Entities\IHasId.cs" />
|
||||||
<Compile Include="Entities\IHasImages.cs" />
|
<Compile Include="Entities\IHasImages.cs" />
|
||||||
<Compile Include="Entities\KeywordExtensions.cs" />
|
|
||||||
<Compile Include="Entities\IHasMediaSources.cs" />
|
<Compile Include="Entities\IHasMediaSources.cs" />
|
||||||
<Compile Include="Entities\IHasProgramAttributes.cs" />
|
<Compile Include="Entities\IHasProgramAttributes.cs" />
|
||||||
<Compile Include="Entities\IHasScreenshots.cs" />
|
<Compile Include="Entities\IHasScreenshots.cs" />
|
||||||
|
|
|
@ -638,22 +638,6 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "PlotKeywords":
|
|
||||||
{
|
|
||||||
if (!reader.IsEmptyElement)
|
|
||||||
{
|
|
||||||
using (var subtree = reader.ReadSubtree())
|
|
||||||
{
|
|
||||||
FetchFromKeywordsNode(subtree, item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
reader.Read();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "Persons":
|
case "Persons":
|
||||||
{
|
{
|
||||||
if (!reader.IsEmptyElement)
|
if (!reader.IsEmptyElement)
|
||||||
|
@ -991,41 +975,6 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FetchFromKeywordsNode(XmlReader reader, BaseItem item)
|
|
||||||
{
|
|
||||||
reader.MoveToContent();
|
|
||||||
reader.Read();
|
|
||||||
|
|
||||||
// Loop through each element
|
|
||||||
while (!reader.EOF && reader.ReadState == ReadState.Interactive)
|
|
||||||
{
|
|
||||||
if (reader.NodeType == XmlNodeType.Element)
|
|
||||||
{
|
|
||||||
switch (reader.Name)
|
|
||||||
{
|
|
||||||
case "PlotKeyword":
|
|
||||||
{
|
|
||||||
var tag = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(tag))
|
|
||||||
{
|
|
||||||
item.AddKeyword(tag);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
reader.Skip();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
reader.Read();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Fetches the data from persons node.
|
/// Fetches the data from persons node.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -80,7 +80,6 @@ namespace MediaBrowser.LocalMetadata.Savers
|
||||||
|
|
||||||
"Overview",
|
"Overview",
|
||||||
"Persons",
|
"Persons",
|
||||||
"PlotKeywords",
|
|
||||||
"PremiereDate",
|
"PremiereDate",
|
||||||
"ProductionYear",
|
"ProductionYear",
|
||||||
"Rating",
|
"Rating",
|
||||||
|
@ -500,18 +499,6 @@ namespace MediaBrowser.LocalMetadata.Savers
|
||||||
writer.WriteEndElement();
|
writer.WriteEndElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Keywords.Count > 0)
|
|
||||||
{
|
|
||||||
writer.WriteStartElement("PlotKeywords");
|
|
||||||
|
|
||||||
foreach (var tag in item.Keywords)
|
|
||||||
{
|
|
||||||
writer.WriteElementString("PlotKeyword", tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
writer.WriteEndElement();
|
|
||||||
}
|
|
||||||
|
|
||||||
var people = libraryManager.GetPeople(item);
|
var people = libraryManager.GetPeople(item);
|
||||||
|
|
||||||
if (people.Count > 0)
|
if (people.Count > 0)
|
||||||
|
|
|
@ -440,12 +440,6 @@ namespace MediaBrowser.Model.Dto
|
||||||
/// <value>The tags.</value>
|
/// <value>The tags.</value>
|
||||||
public List<string> Tags { get; set; }
|
public List<string> Tags { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the keywords.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>The keywords.</value>
|
|
||||||
public List<string> Keywords { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the primary image aspect ratio, after image enhancements.
|
/// Gets or sets the primary image aspect ratio, after image enhancements.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -15,10 +15,6 @@ namespace MediaBrowser.Model.Entities
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Genres,
|
Genres,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The keywords
|
|
||||||
/// </summary>
|
|
||||||
Keywords,
|
|
||||||
/// <summary>
|
|
||||||
/// The production locations
|
/// The production locations
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ProductionLocations,
|
ProductionLocations,
|
||||||
|
|
|
@ -92,11 +92,6 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ItemCounts,
|
ItemCounts,
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The keywords
|
|
||||||
/// </summary>
|
|
||||||
Keywords,
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The media source count
|
/// The media source count
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -164,14 +164,6 @@ namespace MediaBrowser.Providers.Manager
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!lockedFields.Contains(MetadataFields.Keywords))
|
|
||||||
{
|
|
||||||
if (replaceData || target.Keywords.Count == 0)
|
|
||||||
{
|
|
||||||
target.Keywords = source.Keywords;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!lockedFields.Contains(MetadataFields.ProductionLocations))
|
if (!lockedFields.Contains(MetadataFields.ProductionLocations))
|
||||||
{
|
{
|
||||||
if (replaceData || target.ProductionLocations.Count == 0)
|
if (replaceData || target.ProductionLocations.Count == 0)
|
||||||
|
|
|
@ -307,10 +307,10 @@ namespace MediaBrowser.Providers.Movies
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (movieData.keywords != null && movieData.keywords.keywords != null)
|
//if (movieData.keywords != null && movieData.keywords.keywords != null)
|
||||||
{
|
//{
|
||||||
movie.Keywords = movieData.keywords.keywords.Select(i => i.name).ToList();
|
// movie.Keywords = movieData.keywords.keywords.Select(i => i.name).ToList();
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (movieData.trailers != null && movieData.trailers.youtube != null &&
|
if (movieData.trailers != null && movieData.trailers.youtube != null &&
|
||||||
movieData.trailers.youtube.Count > 0)
|
movieData.trailers.youtube.Count > 0)
|
||||||
|
|
|
@ -733,17 +733,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "plotkeyword":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.AddKeyword(val);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "fileinfo":
|
case "fileinfo":
|
||||||
{
|
{
|
||||||
if (!reader.IsEmptyElement)
|
if (!reader.IsEmptyElement)
|
||||||
|
|
|
@ -77,7 +77,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||||
"style",
|
"style",
|
||||||
"imdbid",
|
"imdbid",
|
||||||
"imdb_id",
|
"imdb_id",
|
||||||
"plotkeyword",
|
|
||||||
"country",
|
"country",
|
||||||
"audiodbalbumid",
|
"audiodbalbumid",
|
||||||
"audiodbartistid",
|
"audiodbartistid",
|
||||||
|
@ -715,11 +714,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var tag in item.Keywords)
|
|
||||||
{
|
|
||||||
writer.WriteElementString("plotkeyword", tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
var externalId = item.GetProviderId(MetadataProviders.AudioDbArtist);
|
var externalId = item.GetProviderId(MetadataProviders.AudioDbArtist);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(externalId))
|
if (!string.IsNullOrEmpty(externalId))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user