add notification services tab
This commit is contained in:
parent
30104bd8de
commit
3cc0ad2a35
|
@ -1,4 +1,5 @@
|
|||
using MediaBrowser.Controller.Entities.Audio;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Entities.Audio;
|
||||
using MediaBrowser.Model.Channels;
|
||||
using MediaBrowser.Model.Configuration;
|
||||
using MediaBrowser.Model.Dto;
|
||||
|
@ -100,5 +101,10 @@ namespace MediaBrowser.Controller.Channels
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool IsVisibleStandalone(User user)
|
||||
{
|
||||
return base.IsVisibleStandalone(user) && ChannelVideoItem.IsChannelVisible(this, user);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,5 +80,10 @@ namespace MediaBrowser.Controller.Channels
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool IsVisibleStandalone(User user)
|
||||
{
|
||||
return base.IsVisibleStandalone(user) && ChannelVideoItem.IsChannelVisible(this, user);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -130,5 +130,17 @@ namespace MediaBrowser.Controller.Channels
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool IsVisibleStandalone(User user)
|
||||
{
|
||||
return base.IsVisibleStandalone(user) && IsChannelVisible(this, user);
|
||||
}
|
||||
|
||||
internal static bool IsChannelVisible(IChannelItem item, User user)
|
||||
{
|
||||
var channel = ChannelManager.GetChannel(item.ChannelId);
|
||||
|
||||
return channel.IsVisible(user);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1154,9 +1154,19 @@ namespace MediaBrowser.Controller.Entities
|
|||
return false;
|
||||
}
|
||||
|
||||
// TODO: Need some work here, e.g. is in user library, for channels, can user access channel, etc.
|
||||
var topParent = Parents.LastOrDefault() ?? this;
|
||||
|
||||
return true;
|
||||
if (string.IsNullOrWhiteSpace(topParent.Path))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
var locations = user.RootFolder
|
||||
.GetChildren(user, true)
|
||||
.OfType<CollectionFolder>()
|
||||
.SelectMany(i => i.PhysicalLocations);
|
||||
|
||||
return locations.Any(l => FileSystem.ContainsSubPath(l, topParent.Path));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -106,7 +106,9 @@
|
|||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Probing\whitelist.txt" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
|
|
@ -209,9 +209,6 @@
|
|||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="MediaInfo\whitelist.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
|
|
|
@ -330,7 +330,7 @@ namespace MediaBrowser.Server.Implementations.Channels
|
|||
{
|
||||
files = files.Where(i => _libraryManager.IsAudioFile(i.FullName));
|
||||
}
|
||||
|
||||
|
||||
var file = files
|
||||
.FirstOrDefault(i => i.Name.StartsWith(filenamePrefix, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
|
@ -1454,7 +1454,14 @@ namespace MediaBrowser.Server.Implementations.Channels
|
|||
var host = new Uri(source.Path).Host.ToLower();
|
||||
var channel = GetChannel(item.ChannelId);
|
||||
var channelProvider = GetChannelProvider(channel);
|
||||
var limit = channelProvider.GetChannelFeatures().DailyDownloadLimit;
|
||||
var features = channelProvider.GetChannelFeatures();
|
||||
|
||||
if (!features.SupportsContentDownloading)
|
||||
{
|
||||
throw new ArgumentException("The channel does not support downloading.");
|
||||
}
|
||||
|
||||
var limit = features.DailyDownloadLimit;
|
||||
|
||||
if (!ValidateDownloadLimit(host, limit))
|
||||
{
|
||||
|
|
|
@ -245,23 +245,17 @@ namespace MediaBrowser.Server.Implementations.EntryPoints
|
|||
|
||||
var collections = user.RootFolder.GetChildren(user, true).ToList();
|
||||
|
||||
var allRecursiveChildren = user.RootFolder
|
||||
.GetRecursiveChildren(user)
|
||||
.Select(i => i.Id)
|
||||
.Distinct()
|
||||
.ToDictionary(i => i);
|
||||
|
||||
return new LibraryUpdateInfo
|
||||
{
|
||||
ItemsAdded = itemsAdded.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections, allRecursiveChildren)).Select(i => i.Id.ToString("N")).Distinct().ToList(),
|
||||
ItemsAdded = itemsAdded.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections)).Select(i => i.Id.ToString("N")).Distinct().ToList(),
|
||||
|
||||
ItemsUpdated = itemsUpdated.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections, allRecursiveChildren)).Select(i => i.Id.ToString("N")).Distinct().ToList(),
|
||||
ItemsUpdated = itemsUpdated.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections)).Select(i => i.Id.ToString("N")).Distinct().ToList(),
|
||||
|
||||
ItemsRemoved = itemsRemoved.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections, allRecursiveChildren, true)).Select(i => i.Id.ToString("N")).Distinct().ToList(),
|
||||
ItemsRemoved = itemsRemoved.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections, true)).Select(i => i.Id.ToString("N")).Distinct().ToList(),
|
||||
|
||||
FoldersAddedTo = foldersAddedTo.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections, allRecursiveChildren)).Select(i => i.Id.ToString("N")).Distinct().ToList(),
|
||||
FoldersAddedTo = foldersAddedTo.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections)).Select(i => i.Id.ToString("N")).Distinct().ToList(),
|
||||
|
||||
FoldersRemovedFrom = foldersRemovedFrom.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections, allRecursiveChildren)).Select(i => i.Id.ToString("N")).Distinct().ToList()
|
||||
FoldersRemovedFrom = foldersRemovedFrom.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, collections)).Select(i => i.Id.ToString("N")).Distinct().ToList()
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -272,10 +266,9 @@ namespace MediaBrowser.Server.Implementations.EntryPoints
|
|||
/// <param name="item">The item.</param>
|
||||
/// <param name="user">The user.</param>
|
||||
/// <param name="collections">The collections.</param>
|
||||
/// <param name="allRecursiveChildren">All recursive children.</param>
|
||||
/// <param name="includeIfNotFound">if set to <c>true</c> [include if not found].</param>
|
||||
/// <returns>IEnumerable{``0}.</returns>
|
||||
private IEnumerable<T> TranslatePhysicalItemToUserLibrary<T>(T item, User user, IEnumerable<BaseItem> collections, Dictionary<Guid, Guid> allRecursiveChildren, bool includeIfNotFound = false)
|
||||
private IEnumerable<T> TranslatePhysicalItemToUserLibrary<T>(T item, User user, IEnumerable<BaseItem> collections, bool includeIfNotFound = false)
|
||||
where T : BaseItem
|
||||
{
|
||||
// If the physical root changed, return the user root
|
||||
|
@ -294,7 +287,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints
|
|||
}
|
||||
|
||||
// Return it only if it's in the user's library
|
||||
if (includeIfNotFound || allRecursiveChildren.ContainsKey(item.Id) || (item.Parents.Any(i => i is BasePluginFolder) && item.IsVisibleStandalone(user)))
|
||||
if (includeIfNotFound || item.IsVisibleStandalone(user))
|
||||
{
|
||||
return new[] { item };
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
"TitleLiveTV": "Live TV",
|
||||
"TitleSync": "Sync",
|
||||
"ButtonDonate": "Donate",
|
||||
"TitleNotifications": "Notifications",
|
||||
"ErrorLaunchingChromecast": "There was an error launching chromecast. Please ensure your device is connected to your wireless network.",
|
||||
"MessageErrorLoadingSupporterInfo": "There was an error loading supporter information. Please try again later.",
|
||||
"MessageLinkYourSupporterKey": "Link your supporter key with up to {0} Emby Connect members to enjoy free access to the following apps:",
|
||||
|
|
Loading…
Reference in New Issue
Block a user