aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-03-14 11:38:16 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-03-14 11:38:16 -0400
commit0708dc953e47842a9015efb8290f35a7fd5bfdab (patch)
tree6d7467ed5fb2ed39c34087f93a6392b2c102d181 /MediaBrowser.Server.Implementations
parent26c0b263664541a4b2d606fb0a347bfdef49db7c (diff)
add live tv collage
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Library/UserViewManager.cs3
-rw-r--r--MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj12
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs (renamed from MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs)49
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/StripCollageBuilder.cs (renamed from MediaBrowser.Server.Implementations/Photos/StripCollageBuilder.cs)3
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/livetv/1.jpgbin0 -> 62382 bytes
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/livetv/2.jpgbin0 -> 20550 bytes
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/livetv/3.jpgbin0 -> 27983 bytes
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/livetv/4.jpgbin0 -> 75468 bytes
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/livetv/5.jpgbin0 -> 50933 bytes
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/livetv/6.jpgbin0 -> 15931 bytes
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/livetv/7.jpgbin0 -> 19916 bytes
-rw-r--r--MediaBrowser.Server.Implementations/UserViews/livetv/8.jpgbin0 -> 67721 bytes
13 files changed, 57 insertions, 12 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index f6809c924..c47de7cb8 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -1673,7 +1673,7 @@ namespace MediaBrowser.Server.Implementations.Library
throw new ArgumentNullException("viewType");
}
- var id = GetNewItemId("23_namedview_" + name + user.Id.ToString("N") + (parentId ?? string.Empty), typeof(UserView));
+ var id = GetNewItemId("27_namedview_" + name + user.Id.ToString("N") + (parentId ?? string.Empty), typeof(UserView));
var path = Path.Combine(ConfigurationManager.ApplicationPaths.InternalMetadataPath, "views", id.ToString("N"));
diff --git a/MediaBrowser.Server.Implementations/Library/UserViewManager.cs b/MediaBrowser.Server.Implementations/Library/UserViewManager.cs
index a583534ee..9f3c95e08 100644
--- a/MediaBrowser.Server.Implementations/Library/UserViewManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/UserViewManager.cs
@@ -130,7 +130,8 @@ namespace MediaBrowser.Server.Implementations.Library
if (_liveTvManager.GetEnabledUsers().Select(i => i.Id.ToString("N")).Contains(query.UserId))
{
- list.Add(await _liveTvManager.GetInternalLiveTvFolder(query.UserId, cancellationToken).ConfigureAwait(false));
+ //list.Add(await _liveTvManager.GetInternalLiveTvFolder(query.UserId, cancellationToken).ConfigureAwait(false));
+ list.Add(await GetUserView(CollectionType.LiveTv, string.Empty, user, cancellationToken).ConfigureAwait(false));
}
}
diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
index 396d378bc..c4ef3e9de 100644
--- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
+++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
@@ -231,7 +231,7 @@
<Compile Include="Localization\LocalizationManager.cs" />
<Compile Include="Logging\PatternsLogger.cs" />
<Compile Include="MediaEncoder\EncodingManager.cs" />
- <Compile Include="Photos\DynamicImageProvider.cs" />
+ <Compile Include="UserViews\DynamicImageProvider.cs" />
<Compile Include="News\NewsEntryPoint.cs" />
<Compile Include="News\NewsService.cs" />
<Compile Include="Notifications\CoreNotificationTypes.cs" />
@@ -248,7 +248,7 @@
<Compile Include="Persistence\TypeMapper.cs" />
<Compile Include="Photos\BaseDynamicImageProvider.cs" />
<Compile Include="Photos\DynamicImageHelpers.cs" />
- <Compile Include="Photos\StripCollageBuilder.cs" />
+ <Compile Include="UserViews\StripCollageBuilder.cs" />
<Compile Include="Playlists\ManualPlaylistsFolder.cs" />
<Compile Include="Photos\PhotoAlbumImageProvider.cs" />
<Compile Include="Playlists\PlaylistImageProvider.cs" />
@@ -514,6 +514,14 @@
<Link>swagger-ui\swagger-ui.min.js</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
+ <EmbeddedResource Include="UserViews\livetv\1.jpg" />
+ <EmbeddedResource Include="UserViews\livetv\2.jpg" />
+ <EmbeddedResource Include="UserViews\livetv\3.jpg" />
+ <EmbeddedResource Include="UserViews\livetv\4.jpg" />
+ <EmbeddedResource Include="UserViews\livetv\5.jpg" />
+ <EmbeddedResource Include="UserViews\livetv\6.jpg" />
+ <EmbeddedResource Include="UserViews\livetv\7.jpg" />
+ <EmbeddedResource Include="UserViews\livetv\8.jpg" />
<EmbeddedResource Include="Localization\iso6392.txt" />
<EmbeddedResource Include="Localization\Ratings\be.txt" />
</ItemGroup>
diff --git a/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs b/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs
index 1a02d413e..6cb7a0339 100644
--- a/MediaBrowser.Server.Implementations/Photos/DynamicImageProvider.cs
+++ b/MediaBrowser.Server.Implementations/UserViews/DynamicImageProvider.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Common.Configuration;
+using System.Globalization;
+using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
@@ -6,6 +7,7 @@ using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
+using MediaBrowser.Server.Implementations.Photos;
using MoreLinq;
using System;
using System.Collections.Generic;
@@ -13,7 +15,7 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
-namespace MediaBrowser.Server.Implementations.Photos
+namespace MediaBrowser.Server.Implementations.UserViews
{
public class DynamicImageProvider : BaseDynamicImageProvider<UserView>
{
@@ -54,6 +56,11 @@ namespace MediaBrowser.Server.Implementations.Photos
return new List<BaseItem>();
}
+ if (string.Equals(view.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
+ {
+ return new List<BaseItem>();
+ }
+
if (string.Equals(view.ViewType, SpecialFolder.GameGenre, StringComparison.OrdinalIgnoreCase))
{
var list = new List<BaseItem>();
@@ -93,14 +100,14 @@ namespace MediaBrowser.Server.Implementations.Photos
}
var isUsingCollectionStrip = IsUsingCollectionStrip(view);
- var recursive = isUsingCollectionStrip && !new[] {CollectionType.Playlists, CollectionType.Channels}.Contains(view.ViewType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
+ var recursive = isUsingCollectionStrip && !new[] { CollectionType.Playlists, CollectionType.Channels }.Contains(view.ViewType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
var result = await view.GetItems(new InternalItemsQuery
{
User = _userManager.GetUserById(view.UserId.Value),
CollapseBoxSetItems = false,
Recursive = recursive,
- ExcludeItemTypes = new[] { "UserView", "CollectionFolder"}
+ ExcludeItemTypes = new[] { "UserView", "CollectionFolder" }
}).ConfigureAwait(false);
@@ -219,7 +226,8 @@ namespace MediaBrowser.Server.Implementations.Photos
CollectionType.Music,
CollectionType.BoxSets,
CollectionType.Playlists,
- CollectionType.Channels
+ CollectionType.Channels,
+ CollectionType.LiveTv
};
return collectionStripViewTypes.Contains(view.ViewType ?? string.Empty);
@@ -230,18 +238,45 @@ namespace MediaBrowser.Server.Implementations.Photos
var view = (UserView)item;
if (imageType == ImageType.Primary && IsUsingCollectionStrip(view))
{
- var stream = new StripCollageBuilder(ApplicationPaths).BuildThumbCollage(GetStripCollageImagePaths(itemsWithImages), item.Name, 960, 540);
+ var stream = new StripCollageBuilder(ApplicationPaths).BuildThumbCollage(GetStripCollageImagePaths(itemsWithImages, view.ViewType), item.Name, 960, 540);
return Task.FromResult(stream);
}
return base.CreateImageAsync(item, itemsWithImages, imageType, imageIndex);
}
- private IEnumerable<String> GetStripCollageImagePaths(IEnumerable<BaseItem> items)
+ private IEnumerable<String> GetStripCollageImagePaths(IEnumerable<BaseItem> items, string viewType)
{
+ if (string.Equals(viewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
+ {
+ var list = new List<string>();
+ for (int i = 1; i <= 8; i++)
+ {
+ list.Add(ExtractLiveTvResource(i.ToString(CultureInfo.InvariantCulture), ApplicationPaths));
+ }
+ return list;
+ }
+
return items
.Select(i => i.GetImagePath(ImageType.Primary) ?? i.GetImagePath(ImageType.Thumb))
.Where(i => !string.IsNullOrWhiteSpace(i));
}
+
+ private string ExtractLiveTvResource(string name, IApplicationPaths paths)
+ {
+ var namespacePath = GetType().Namespace + ".livetv." + name + ".jpg";
+ var tempPath = Path.Combine(paths.TempDirectory, Guid.NewGuid().ToString("N") + ".jpg");
+ Directory.CreateDirectory(Path.GetDirectoryName(tempPath));
+
+ using (var stream = GetType().Assembly.GetManifestResourceStream(namespacePath))
+ {
+ using (var fileStream = new FileStream(tempPath, FileMode.Create, FileAccess.Write, FileShare.Read))
+ {
+ stream.CopyTo(fileStream);
+ }
+ }
+
+ return tempPath;
+ }
}
}
diff --git a/MediaBrowser.Server.Implementations/Photos/StripCollageBuilder.cs b/MediaBrowser.Server.Implementations/UserViews/StripCollageBuilder.cs
index 6fd33f6e4..2f2d9860c 100644
--- a/MediaBrowser.Server.Implementations/Photos/StripCollageBuilder.cs
+++ b/MediaBrowser.Server.Implementations/UserViews/StripCollageBuilder.cs
@@ -1,12 +1,13 @@
using ImageMagickSharp;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Server.Implementations.Drawing;
+using MediaBrowser.Server.Implementations.Photos;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-namespace MediaBrowser.Server.Implementations.Photos
+namespace MediaBrowser.Server.Implementations.UserViews
{
public class StripCollageBuilder
{
diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/1.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/1.jpg
new file mode 100644
index 000000000..2594b68a4
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/UserViews/livetv/1.jpg
Binary files differ
diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/2.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/2.jpg
new file mode 100644
index 000000000..e5c87b96b
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/UserViews/livetv/2.jpg
Binary files differ
diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/3.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/3.jpg
new file mode 100644
index 000000000..c19f7e612
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/UserViews/livetv/3.jpg
Binary files differ
diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/4.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/4.jpg
new file mode 100644
index 000000000..93ee18044
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/UserViews/livetv/4.jpg
Binary files differ
diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/5.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/5.jpg
new file mode 100644
index 000000000..4c2cd580d
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/UserViews/livetv/5.jpg
Binary files differ
diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/6.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/6.jpg
new file mode 100644
index 000000000..6f496b6ac
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/UserViews/livetv/6.jpg
Binary files differ
diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/7.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/7.jpg
new file mode 100644
index 000000000..e7dba2760
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/UserViews/livetv/7.jpg
Binary files differ
diff --git a/MediaBrowser.Server.Implementations/UserViews/livetv/8.jpg b/MediaBrowser.Server.Implementations/UserViews/livetv/8.jpg
new file mode 100644
index 000000000..c69ba908c
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/UserViews/livetv/8.jpg
Binary files differ