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();
}
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;
}
@ -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)
{
if (!IsWhiteSpace(bmp.GetPixel(i, row)))
if (!IsTransparent(bmp.GetPixel(i, row)))
{
return false;
}
@ -108,11 +109,11 @@ namespace Emby.Drawing.Skia
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)
{
if (!IsWhiteSpace(bmp.GetPixel(col, i)))
if (!IsTransparent(bmp.GetPixel(col, i)))
{
return false;
}
@ -125,7 +126,7 @@ namespace Emby.Drawing.Skia
var topmost = 0;
for (int row = 0; row < bitmap.Height; ++row)
{
if (IsAllWhiteRow(bitmap, row))
if (IsTransparentRow(bitmap, row))
topmost = row + 1;
else break;
}
@ -133,7 +134,7 @@ namespace Emby.Drawing.Skia
int bottommost = bitmap.Height;
for (int row = bitmap.Height - 1; row >= 0; --row)
{
if (IsAllWhiteRow(bitmap, row))
if (IsTransparentRow(bitmap, row))
bottommost = row;
else break;
}
@ -141,7 +142,7 @@ namespace Emby.Drawing.Skia
int leftmost = 0, rightmost = bitmap.Width;
for (int col = 0; col < bitmap.Width; ++col)
{
if (IsAllWhiteColumn(bitmap, col))
if (IsTransparentColumn(bitmap, col))
leftmost = col + 1;
else
break;
@ -149,7 +150,7 @@ namespace Emby.Drawing.Skia
for (int col = bitmap.Width - 1; col >= 0; --col)
{
if (IsAllWhiteColumn(bitmap, col))
if (IsTransparentColumn(bitmap, col))
rightmost = col;
else
break;

View File

@ -356,8 +356,6 @@ namespace Emby.Server.Implementations
/// </summary>
public override async Task RunStartupTasks()
{
await PerformPreInitMigrations().ConfigureAwait(false);
await base.RunStartupTasks().ConfigureAwait(false);
await MediaEncoder.Init().ConfigureAwait(false);
@ -375,7 +373,6 @@ namespace Emby.Server.Implementations
Logger.Info("Core startup complete");
HttpServer.GlobalResponse = null;
PerformPostInitMigrations();
Logger.Info("Post-init migrations complete");
foreach (var entryPoint in GetExports<IServerEntryPoint>().ToList())
@ -410,45 +407,7 @@ namespace Emby.Server.Implementations
// Failing under mono
}
var result = 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;
return new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer"));
}
public override Task Init(IProgress<double> progress)
@ -466,44 +425,6 @@ namespace Emby.Server.Implementations
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 ISyncManager CreateSyncManager();

View File

@ -202,7 +202,6 @@ namespace Emby.Server.Implementations.Data
AddColumn(db, "TypedBaseItems", "ForcedSortName", "Text", existingColumnNames);
AddColumn(db, "TypedBaseItems", "RunTimeTicks", "BIGINT", existingColumnNames);
AddColumn(db, "TypedBaseItems", "HomePageUrl", "Text", existingColumnNames);
AddColumn(db, "TypedBaseItems", "DisplayMediaType", "Text", existingColumnNames);
AddColumn(db, "TypedBaseItems", "DateCreated", "DATETIME", existingColumnNames);
AddColumn(db, "TypedBaseItems", "DateModified", "DATETIME", 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_SeriesPresentationUniqueKey",
"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_ParentIdTypedBaseItems on TypedBaseItems(ParentId)",
@ -417,7 +418,6 @@ namespace Emby.Server.Implementations.Data
"ProductionYear",
"OfficialRating",
"HomePageUrl",
"DisplayMediaType",
"ForcedSortName",
"RunTimeTicks",
"DateCreated",
@ -534,7 +534,6 @@ namespace Emby.Server.Implementations.Data
"ForcedSortName",
"RunTimeTicks",
"HomePageUrl",
"DisplayMediaType",
"DateCreated",
"DateModified",
"PreferredMetadataLanguage",
@ -811,7 +810,6 @@ namespace Emby.Server.Implementations.Data
saveItemStatement.TryBind("@RunTimeTicks", item.RunTimeTicks);
saveItemStatement.TryBind("@HomePageUrl", item.HomePageUrl);
saveItemStatement.TryBindNull("@DisplayMediaType");
saveItemStatement.TryBind("@DateCreated", item.DateCreated);
saveItemStatement.TryBind("@DateModified", item.DateModified);
@ -1218,14 +1216,15 @@ namespace Emby.Server.Implementations.Data
{
return false;
}
if (type == typeof(Season))
{
return false;
}
if (type == typeof(MusicArtist))
{
return false;
}
}
if (type == typeof(Season))
{
return false;
}
if (type == typeof(MusicArtist))
{
return false;
}
if (type == typeof(Person))
@ -1573,19 +1572,6 @@ namespace Emby.Server.Implementations.Data
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 (!reader.IsDBNull(index))
@ -1737,6 +1723,7 @@ namespace Emby.Server.Implementations.Data
index++;
}
var video = item as Video;
if (video != null)
{
if (!reader.IsDBNull(index))
@ -2248,7 +2235,6 @@ namespace Emby.Server.Implementations.Data
{
case ItemFields.HomePageUrl:
case ItemFields.CustomRating:
case ItemFields.DisplayMediaType:
case ItemFields.ProductionLocations:
case ItemFields.Settings:
case ItemFields.OriginalTitle:

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -62,11 +62,6 @@
/// </summary>
DisplayPreferencesId,
/// <summary>
/// The display media type
/// </summary>
DisplayMediaType,
/// <summary>
/// The etag
/// </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)
{
MergeMetadataSettings(source, target);