mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-22 01:54:42 +01:00
denormalize series fields
This commit is contained in:
@@ -1076,15 +1076,11 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
dto.PreferredMetadataCountryCode = item.PreferredMetadataCountryCode;
|
||||
dto.PreferredMetadataLanguage = item.PreferredMetadataLanguage;
|
||||
|
||||
var hasCriticRating = item as IHasCriticRating;
|
||||
if (hasCriticRating != null)
|
||||
{
|
||||
dto.CriticRating = hasCriticRating.CriticRating;
|
||||
dto.CriticRating = item.CriticRating;
|
||||
|
||||
if (fields.Contains(ItemFields.CriticRatingSummary))
|
||||
{
|
||||
dto.CriticRatingSummary = hasCriticRating.CriticRatingSummary;
|
||||
}
|
||||
if (fields.Contains(ItemFields.CriticRatingSummary))
|
||||
{
|
||||
dto.CriticRatingSummary = item.CriticRatingSummary;
|
||||
}
|
||||
|
||||
var hasTrailers = item as IHasTrailers;
|
||||
@@ -1127,11 +1123,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
|
||||
if (fields.Contains(ItemFields.ShortOverview))
|
||||
{
|
||||
var hasShortOverview = item as IHasShortOverview;
|
||||
if (hasShortOverview != null)
|
||||
{
|
||||
dto.ShortOverview = hasShortOverview.ShortOverview;
|
||||
}
|
||||
dto.ShortOverview = item.ShortOverview;
|
||||
}
|
||||
|
||||
// If there are no backdrops, indicate what parent has them in case the Ui wants to allow inheritance
|
||||
@@ -1426,14 +1418,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
dto.SeasonId = seasonId.Value.ToString("N");
|
||||
}
|
||||
|
||||
var episodeSeason = episode.Season;
|
||||
if (episodeSeason != null)
|
||||
{
|
||||
if (fields.Contains(ItemFields.SeasonName))
|
||||
{
|
||||
dto.SeasonName = episodeSeason.Name;
|
||||
}
|
||||
}
|
||||
dto.SeasonName = episode.SeasonName;
|
||||
|
||||
var episodeSeries = episode.Series;
|
||||
|
||||
@@ -1483,14 +1468,19 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||
var season = item as Season;
|
||||
if (season != null)
|
||||
{
|
||||
dto.SeriesName = season.SeriesName;
|
||||
|
||||
series = season.Series;
|
||||
|
||||
if (series != null)
|
||||
{
|
||||
dto.SeriesId = GetDtoId(series);
|
||||
dto.SeriesName = series.Name;
|
||||
dto.AirTime = series.AirTime;
|
||||
dto.SeriesStudio = series.Studios.FirstOrDefault();
|
||||
|
||||
if (fields.Contains(ItemFields.SeriesStudio))
|
||||
{
|
||||
dto.SeriesStudio = series.Studios.FirstOrDefault();
|
||||
}
|
||||
|
||||
if (options.GetImageLimit(ImageType.Primary) > 0)
|
||||
{
|
||||
|
||||
@@ -95,7 +95,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
private IDbCommand _updateInheritedRatingCommand;
|
||||
private IDbCommand _updateInheritedTagsCommand;
|
||||
|
||||
public const int LatestSchemaVersion = 97;
|
||||
public const int LatestSchemaVersion = 99;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
|
||||
@@ -271,6 +271,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
_connection.AddColumn(Logger, "TypedBaseItems", "IsVirtualItem", "BIT");
|
||||
_connection.AddColumn(Logger, "TypedBaseItems", "SeriesName", "Text");
|
||||
_connection.AddColumn(Logger, "TypedBaseItems", "UserDataKey", "Text");
|
||||
_connection.AddColumn(Logger, "TypedBaseItems", "SeasonName", "Text");
|
||||
|
||||
_connection.AddColumn(Logger, "UserDataKeys", "Priority", "INT");
|
||||
_connection.AddColumn(Logger, "ItemValues", "CleanValue", "Text");
|
||||
@@ -402,7 +403,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
"Album",
|
||||
"CriticRating",
|
||||
"CriticRatingSummary",
|
||||
"IsVirtualItem"
|
||||
"IsVirtualItem",
|
||||
"SeriesName",
|
||||
"SeasonName"
|
||||
};
|
||||
|
||||
private readonly string[] _mediaStreamSaveColumns =
|
||||
@@ -522,7 +525,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
"Album",
|
||||
"IsVirtualItem",
|
||||
"SeriesName",
|
||||
"UserDataKey"
|
||||
"UserDataKey",
|
||||
"SeasonName"
|
||||
};
|
||||
_saveItemCommand = _connection.CreateCommand();
|
||||
_saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
|
||||
@@ -944,7 +948,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
var hasSeries = item as IHasSeries;
|
||||
if (hasSeries != null)
|
||||
{
|
||||
_saveItemCommand.GetParameter(index++).Value = hasSeries.SeriesName;
|
||||
_saveItemCommand.GetParameter(index++).Value = hasSeries.FindSeriesName();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -953,6 +957,16 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
|
||||
_saveItemCommand.GetParameter(index++).Value = item.GetUserDataKeys().FirstOrDefault();
|
||||
|
||||
var episode = item as Episode;
|
||||
if (episode != null)
|
||||
{
|
||||
_saveItemCommand.GetParameter(index++).Value = episode.FindSeasonName();
|
||||
}
|
||||
else
|
||||
{
|
||||
_saveItemCommand.GetParameter(index++).Value = null;
|
||||
}
|
||||
|
||||
_saveItemCommand.Transaction = transaction;
|
||||
|
||||
_saveItemCommand.ExecuteNonQuery();
|
||||
@@ -1375,6 +1389,24 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
item.IsVirtualItem = reader.GetBoolean(58);
|
||||
}
|
||||
|
||||
var hasSeries = item as IHasSeries;
|
||||
if (hasSeries != null)
|
||||
{
|
||||
if (!reader.IsDBNull(59))
|
||||
{
|
||||
hasSeries.SeriesName = reader.GetString(59);
|
||||
}
|
||||
}
|
||||
|
||||
var episode = item as Episode;
|
||||
if (episode != null)
|
||||
{
|
||||
if (!reader.IsDBNull(60))
|
||||
{
|
||||
episode.SeasonName = reader.GetString(60);
|
||||
}
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user