update hdhr channel ids

This commit is contained in:
Luke Pulverenti 2017-08-15 23:40:36 -04:00
parent ee5fdd4120
commit d2b86edf05
11 changed files with 31 additions and 145 deletions

View File

@ -74,8 +74,9 @@ namespace Emby.Drawing.Skia
return typeof(SKBitmap).GetTypeInfo().Assembly.GetName().Version.ToString(); return typeof(SKBitmap).GetTypeInfo().Assembly.GetName().Version.ToString();
} }
private static bool IsWhiteSpace(SKColor color) private static bool IsTransparent(SKColor color)
{ {
return (color.Red == 255 && color.Green == 255 && color.Blue == 255) || color.Alpha == 0; return (color.Red == 255 && color.Green == 255 && color.Blue == 255) || color.Alpha == 0;
} }
@ -96,11 +97,11 @@ namespace Emby.Drawing.Skia
} }
} }
private static bool IsAllWhiteRow(SKBitmap bmp, int row) private static bool IsTransparentRow(SKBitmap bmp, int row)
{ {
for (var i = 0; i < bmp.Width; ++i) for (var i = 0; i < bmp.Width; ++i)
{ {
if (!IsWhiteSpace(bmp.GetPixel(i, row))) if (!IsTransparent(bmp.GetPixel(i, row)))
{ {
return false; return false;
} }
@ -108,11 +109,11 @@ namespace Emby.Drawing.Skia
return true; return true;
} }
private static bool IsAllWhiteColumn(SKBitmap bmp, int col) private static bool IsTransparentColumn(SKBitmap bmp, int col)
{ {
for (var i = 0; i < bmp.Height; ++i) for (var i = 0; i < bmp.Height; ++i)
{ {
if (!IsWhiteSpace(bmp.GetPixel(col, i))) if (!IsTransparent(bmp.GetPixel(col, i)))
{ {
return false; return false;
} }
@ -125,7 +126,7 @@ namespace Emby.Drawing.Skia
var topmost = 0; var topmost = 0;
for (int row = 0; row < bitmap.Height; ++row) for (int row = 0; row < bitmap.Height; ++row)
{ {
if (IsAllWhiteRow(bitmap, row)) if (IsTransparentRow(bitmap, row))
topmost = row + 1; topmost = row + 1;
else break; else break;
} }
@ -133,7 +134,7 @@ namespace Emby.Drawing.Skia
int bottommost = bitmap.Height; int bottommost = bitmap.Height;
for (int row = bitmap.Height - 1; row >= 0; --row) for (int row = bitmap.Height - 1; row >= 0; --row)
{ {
if (IsAllWhiteRow(bitmap, row)) if (IsTransparentRow(bitmap, row))
bottommost = row; bottommost = row;
else break; else break;
} }
@ -141,7 +142,7 @@ namespace Emby.Drawing.Skia
int leftmost = 0, rightmost = bitmap.Width; int leftmost = 0, rightmost = bitmap.Width;
for (int col = 0; col < bitmap.Width; ++col) for (int col = 0; col < bitmap.Width; ++col)
{ {
if (IsAllWhiteColumn(bitmap, col)) if (IsTransparentColumn(bitmap, col))
leftmost = col + 1; leftmost = col + 1;
else else
break; break;
@ -149,7 +150,7 @@ namespace Emby.Drawing.Skia
for (int col = bitmap.Width - 1; col >= 0; --col) for (int col = bitmap.Width - 1; col >= 0; --col)
{ {
if (IsAllWhiteColumn(bitmap, col)) if (IsTransparentColumn(bitmap, col))
rightmost = col; rightmost = col;
else else
break; break;

View File

@ -356,8 +356,6 @@ namespace Emby.Server.Implementations
/// </summary> /// </summary>
public override async Task RunStartupTasks() public override async Task RunStartupTasks()
{ {
await PerformPreInitMigrations().ConfigureAwait(false);
await base.RunStartupTasks().ConfigureAwait(false); await base.RunStartupTasks().ConfigureAwait(false);
await MediaEncoder.Init().ConfigureAwait(false); await MediaEncoder.Init().ConfigureAwait(false);
@ -375,7 +373,6 @@ namespace Emby.Server.Implementations
Logger.Info("Core startup complete"); Logger.Info("Core startup complete");
HttpServer.GlobalResponse = null; HttpServer.GlobalResponse = null;
PerformPostInitMigrations();
Logger.Info("Post-init migrations complete"); Logger.Info("Post-init migrations complete");
foreach (var entryPoint in GetExports<IServerEntryPoint>().ToList()) foreach (var entryPoint in GetExports<IServerEntryPoint>().ToList())
@ -410,45 +407,7 @@ namespace Emby.Server.Implementations
// Failing under mono // Failing under mono
} }
var result = new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer")); return new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer"));
ServiceStack.Text.JsConfig<LiveTvProgram>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<LiveTvChannel>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<LiveTvVideoRecording>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<LiveTvAudioRecording>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Series>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Audio>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<MusicAlbum>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<MusicArtist>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<MusicGenre>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<MusicVideo>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Movie>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Playlist>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<AudioPodcast>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<AudioBook>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Trailer>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<BoxSet>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Episode>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Season>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Book>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<CollectionFolder>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Folder>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Game>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<GameGenre>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<GameSystem>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Genre>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Person>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Photo>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<PhotoAlbum>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Studio>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<UserRootFolder>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<UserView>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Video>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Year>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<Channel>.ExcludePropertyNames = new[] { "ProviderIds" };
ServiceStack.Text.JsConfig<AggregateFolder>.ExcludePropertyNames = new[] { "ProviderIds" };
return result;
} }
public override Task Init(IProgress<double> progress) public override Task Init(IProgress<double> progress)
@ -466,44 +425,6 @@ namespace Emby.Server.Implementations
return base.Init(progress); return base.Init(progress);
} }
private async Task PerformPreInitMigrations()
{
var migrations = new List<IVersionMigration>
{
};
foreach (var task in migrations)
{
try
{
await task.Run().ConfigureAwait(false);
}
catch (Exception ex)
{
Logger.ErrorException("Error running migration", ex);
}
}
}
private void PerformPostInitMigrations()
{
var migrations = new List<IVersionMigration>
{
};
foreach (var task in migrations)
{
try
{
task.Run();
}
catch (Exception ex)
{
Logger.ErrorException("Error running migration", ex);
}
}
}
protected abstract IConnectManager CreateConnectManager(); protected abstract IConnectManager CreateConnectManager();
protected abstract ISyncManager CreateSyncManager(); protected abstract ISyncManager CreateSyncManager();

View File

@ -202,7 +202,6 @@ namespace Emby.Server.Implementations.Data
AddColumn(db, "TypedBaseItems", "ForcedSortName", "Text", existingColumnNames); AddColumn(db, "TypedBaseItems", "ForcedSortName", "Text", existingColumnNames);
AddColumn(db, "TypedBaseItems", "RunTimeTicks", "BIGINT", existingColumnNames); AddColumn(db, "TypedBaseItems", "RunTimeTicks", "BIGINT", existingColumnNames);
AddColumn(db, "TypedBaseItems", "HomePageUrl", "Text", existingColumnNames); AddColumn(db, "TypedBaseItems", "HomePageUrl", "Text", existingColumnNames);
AddColumn(db, "TypedBaseItems", "DisplayMediaType", "Text", existingColumnNames);
AddColumn(db, "TypedBaseItems", "DateCreated", "DATETIME", existingColumnNames); AddColumn(db, "TypedBaseItems", "DateCreated", "DATETIME", existingColumnNames);
AddColumn(db, "TypedBaseItems", "DateModified", "DATETIME", existingColumnNames); AddColumn(db, "TypedBaseItems", "DateModified", "DATETIME", existingColumnNames);
AddColumn(db, "TypedBaseItems", "IsSeries", "BIT", existingColumnNames); AddColumn(db, "TypedBaseItems", "IsSeries", "BIT", existingColumnNames);
@ -307,6 +306,8 @@ namespace Emby.Server.Implementations.Data
"drop index if exists idx_TypeSeriesPresentationUniqueKey", "drop index if exists idx_TypeSeriesPresentationUniqueKey",
"drop index if exists idx_SeriesPresentationUniqueKey", "drop index if exists idx_SeriesPresentationUniqueKey",
"drop index if exists idx_TypeSeriesPresentationUniqueKey2", "drop index if exists idx_TypeSeriesPresentationUniqueKey2",
"drop index if exists idx_AncestorIds3",
"drop index if exists idx_AncestorIds4",
"create index if not exists idx_PathTypedBaseItems on TypedBaseItems(Path)", "create index if not exists idx_PathTypedBaseItems on TypedBaseItems(Path)",
"create index if not exists idx_ParentIdTypedBaseItems on TypedBaseItems(ParentId)", "create index if not exists idx_ParentIdTypedBaseItems on TypedBaseItems(ParentId)",
@ -417,7 +418,6 @@ namespace Emby.Server.Implementations.Data
"ProductionYear", "ProductionYear",
"OfficialRating", "OfficialRating",
"HomePageUrl", "HomePageUrl",
"DisplayMediaType",
"ForcedSortName", "ForcedSortName",
"RunTimeTicks", "RunTimeTicks",
"DateCreated", "DateCreated",
@ -534,7 +534,6 @@ namespace Emby.Server.Implementations.Data
"ForcedSortName", "ForcedSortName",
"RunTimeTicks", "RunTimeTicks",
"HomePageUrl", "HomePageUrl",
"DisplayMediaType",
"DateCreated", "DateCreated",
"DateModified", "DateModified",
"PreferredMetadataLanguage", "PreferredMetadataLanguage",
@ -811,7 +810,6 @@ namespace Emby.Server.Implementations.Data
saveItemStatement.TryBind("@RunTimeTicks", item.RunTimeTicks); saveItemStatement.TryBind("@RunTimeTicks", item.RunTimeTicks);
saveItemStatement.TryBind("@HomePageUrl", item.HomePageUrl); saveItemStatement.TryBind("@HomePageUrl", item.HomePageUrl);
saveItemStatement.TryBindNull("@DisplayMediaType");
saveItemStatement.TryBind("@DateCreated", item.DateCreated); saveItemStatement.TryBind("@DateCreated", item.DateCreated);
saveItemStatement.TryBind("@DateModified", item.DateModified); saveItemStatement.TryBind("@DateModified", item.DateModified);
@ -1218,6 +1216,8 @@ namespace Emby.Server.Implementations.Data
{ {
return false; return false;
} }
}
if (type == typeof(Season)) if (type == typeof(Season))
{ {
return false; return false;
@ -1226,7 +1226,6 @@ namespace Emby.Server.Implementations.Data
{ {
return false; return false;
} }
}
if (type == typeof(Person)) if (type == typeof(Person))
{ {
@ -1573,19 +1572,6 @@ namespace Emby.Server.Implementations.Data
index++; index++;
} }
var video = item as Video;
if (HasField(query, ItemFields.DisplayMediaType))
{
if (video != null)
{
if (!reader.IsDBNull(index))
{
video.DisplayMediaType = reader.GetString(index);
}
}
index++;
}
if (HasField(query, ItemFields.SortName)) if (HasField(query, ItemFields.SortName))
{ {
if (!reader.IsDBNull(index)) if (!reader.IsDBNull(index))
@ -1737,6 +1723,7 @@ namespace Emby.Server.Implementations.Data
index++; index++;
} }
var video = item as Video;
if (video != null) if (video != null)
{ {
if (!reader.IsDBNull(index)) if (!reader.IsDBNull(index))
@ -2248,7 +2235,6 @@ namespace Emby.Server.Implementations.Data
{ {
case ItemFields.HomePageUrl: case ItemFields.HomePageUrl:
case ItemFields.CustomRating: case ItemFields.CustomRating:
case ItemFields.DisplayMediaType:
case ItemFields.ProductionLocations: case ItemFields.ProductionLocations:
case ItemFields.Settings: case ItemFields.Settings:
case ItemFields.OriginalTitle: case ItemFields.OriginalTitle:

View File

@ -68,7 +68,10 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{ {
var id = ChannelIdPrefix + i.GuideNumber; var id = ChannelIdPrefix + i.GuideNumber;
if (!info.EnableNewHdhrChannelIds)
{
id += '_' + (i.GuideName ?? string.Empty).GetMD5().ToString("N"); id += '_' + (i.GuideName ?? string.Empty).GetMD5().ToString("N");
}
return id; return id;
} }

View File

@ -1670,7 +1670,6 @@ namespace Emby.Server.Implementations.Session
dtoOptions.Fields.Remove(ItemFields.DateLastMediaAdded); dtoOptions.Fields.Remove(ItemFields.DateLastMediaAdded);
dtoOptions.Fields.Remove(ItemFields.DateLastRefreshed); dtoOptions.Fields.Remove(ItemFields.DateLastRefreshed);
dtoOptions.Fields.Remove(ItemFields.DateLastSaved); dtoOptions.Fields.Remove(ItemFields.DateLastSaved);
dtoOptions.Fields.Remove(ItemFields.DisplayMediaType);
dtoOptions.Fields.Remove(ItemFields.DisplayPreferencesId); dtoOptions.Fields.Remove(ItemFields.DisplayPreferencesId);
dtoOptions.Fields.Remove(ItemFields.Etag); dtoOptions.Fields.Remove(ItemFields.Etag);
dtoOptions.Fields.Remove(ItemFields.ExternalEtag); dtoOptions.Fields.Remove(ItemFields.ExternalEtag);

View File

@ -852,6 +852,8 @@ namespace MediaBrowser.Api.LiveTv
public async Task<object> Post(AddTunerHost request) public async Task<object> Post(AddTunerHost request)
{ {
request.EnableNewHdhrChannelIds = true;
var result = await _liveTvManager.SaveTunerHost(request).ConfigureAwait(false); var result = await _liveTvManager.SaveTunerHost(request).ConfigureAwait(false);
return ToOptimizedResult(result); return ToOptimizedResult(result);
} }

View File

@ -1246,6 +1246,7 @@ namespace MediaBrowser.Controller.Entities
/// Gets or sets the provider ids. /// Gets or sets the provider ids.
/// </summary> /// </summary>
/// <value>The provider ids.</value> /// <value>The provider ids.</value>
[IgnoreDataMember]
public Dictionary<string, string> ProviderIds { get; set; } public Dictionary<string, string> ProviderIds { get; set; }
[IgnoreDataMember] [IgnoreDataMember]

View File

@ -53,12 +53,6 @@ namespace MediaBrowser.Controller.Entities
} }
} }
/// <summary>
/// Gets or sets the display type of the media.
/// </summary>
/// <value>The display type of the media.</value>
public string DisplayMediaType { get; set; }
[IgnoreDataMember] [IgnoreDataMember]
public override bool SupportsPositionTicksResume public override bool SupportsPositionTicksResume
{ {

View File

@ -47,6 +47,7 @@ namespace MediaBrowser.Model.LiveTv
public bool ImportFavoritesOnly { get; set; } public bool ImportFavoritesOnly { get; set; }
public bool AllowHWTranscoding { get; set; } public bool AllowHWTranscoding { get; set; }
public bool EnableStreamLooping { get; set; } public bool EnableStreamLooping { get; set; }
public bool EnableNewHdhrChannelIds { get; set; }
public TunerHostInfo() public TunerHostInfo()
{ {

View File

@ -62,11 +62,6 @@
/// </summary> /// </summary>
DisplayPreferencesId, DisplayPreferencesId,
/// <summary>
/// The display media type
/// </summary>
DisplayMediaType,
/// <summary> /// <summary>
/// The etag /// The etag
/// </summary> /// </summary>

View File

@ -202,23 +202,6 @@ namespace MediaBrowser.Providers.Manager
} }
} }
//if (!lockedFields.Contains(MetadataFields.DisplayMediaType))
{
var targetVideo = target as Video;
var sourceVideo = source as Video;
if (sourceVideo != null && targetVideo != null)
{
if (replaceData || string.IsNullOrEmpty(targetVideo.DisplayMediaType))
{
// Safeguard against incoming data having an emtpy name
if (!string.IsNullOrWhiteSpace(sourceVideo.DisplayMediaType))
{
targetVideo.DisplayMediaType = sourceVideo.DisplayMediaType;
}
}
}
}
if (mergeMetadataSettings) if (mergeMetadataSettings)
{ {
MergeMetadataSettings(source, target); MergeMetadataSettings(source, target);