mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-03 06:18:28 +01:00
add new notification features
This commit is contained in:
@@ -236,6 +236,10 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
return DontFetchMeta;
|
||||
}
|
||||
set
|
||||
{
|
||||
DontFetchMeta = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsUnidentified { get; set; }
|
||||
|
||||
@@ -16,6 +16,9 @@ namespace MediaBrowser.Controller.Library
|
||||
public BaseItemInfo MediaInfo { get; set; }
|
||||
public string MediaSourceId { get; set; }
|
||||
|
||||
public string DeviceName { get; set; }
|
||||
public string ClientName { get; set; }
|
||||
|
||||
public PlaybackProgressEventArgs()
|
||||
{
|
||||
Users = new List<User>();
|
||||
|
||||
@@ -168,7 +168,9 @@
|
||||
<Compile Include="Net\IRestfulService.cs" />
|
||||
<Compile Include="News\INewsService.cs" />
|
||||
<Compile Include="Notifications\INotificationManager.cs" />
|
||||
<Compile Include="Notifications\INotificationService.cs" />
|
||||
<Compile Include="Notifications\INotificationsRepository.cs" />
|
||||
<Compile Include="Notifications\INotificationTypeFactory.cs" />
|
||||
<Compile Include="Notifications\NotificationUpdateEventArgs.cs" />
|
||||
<Compile Include="Notifications\UserNotification.cs" />
|
||||
<Compile Include="Persistence\IFileOrganizationRepository.cs" />
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Notifications;
|
||||
using MediaBrowser.Model.Notifications;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -20,30 +19,19 @@ namespace MediaBrowser.Controller.Notifications
|
||||
/// Adds the parts.
|
||||
/// </summary>
|
||||
/// <param name="services">The services.</param>
|
||||
void AddParts(IEnumerable<INotificationService> services);
|
||||
}
|
||||
|
||||
public interface INotificationService
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
string Name { get; }
|
||||
/// <param name="notificationTypeFactories">The notification type factories.</param>
|
||||
void AddParts(IEnumerable<INotificationService> services, IEnumerable<INotificationTypeFactory> notificationTypeFactories);
|
||||
|
||||
/// <summary>
|
||||
/// Sends the notification.
|
||||
/// Gets the notification types.
|
||||
/// </summary>
|
||||
/// <param name="request">The request.</param>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>Task.</returns>
|
||||
Task SendNotification(UserNotification request, CancellationToken cancellationToken);
|
||||
/// <returns>IEnumerable{NotificationTypeInfo}.</returns>
|
||||
IEnumerable<NotificationTypeInfo> GetNotificationTypes();
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether [is enabled for user] [the specified user identifier].
|
||||
/// Gets the notification services.
|
||||
/// </summary>
|
||||
/// <param name="user">The user.</param>
|
||||
/// <returns><c>true</c> if [is enabled for user] [the specified user identifier]; otherwise, <c>false</c>.</returns>
|
||||
bool IsEnabledForUser(User user);
|
||||
/// <returns>IEnumerable{NotificationServiceInfo}.</returns>
|
||||
IEnumerable<NotificationServiceInfo> GetNotificationServices();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MediaBrowser.Controller.Notifications
|
||||
{
|
||||
public interface INotificationService
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the name.
|
||||
/// </summary>
|
||||
/// <value>The name.</value>
|
||||
string Name { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Sends the notification.
|
||||
/// </summary>
|
||||
/// <param name="request">The request.</param>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>Task.</returns>
|
||||
Task SendNotification(UserNotification request, CancellationToken cancellationToken);
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether [is enabled for user] [the specified user identifier].
|
||||
/// </summary>
|
||||
/// <param name="user">The user.</param>
|
||||
/// <returns><c>true</c> if [is enabled for user] [the specified user identifier]; otherwise, <c>false</c>.</returns>
|
||||
bool IsEnabledForUser(User user);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using MediaBrowser.Model.Notifications;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace MediaBrowser.Controller.Notifications
|
||||
{
|
||||
public interface INotificationTypeFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the notification types.
|
||||
/// </summary>
|
||||
/// <returns>IEnumerable{NotificationTypeInfo}.</returns>
|
||||
IEnumerable<NotificationTypeInfo> GetNotificationTypes();
|
||||
}
|
||||
}
|
||||
@@ -429,7 +429,7 @@ namespace MediaBrowser.Controller.Providers
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val))
|
||||
{
|
||||
item.DontFetchMeta = string.Equals("true", val, StringComparison.OrdinalIgnoreCase);
|
||||
item.IsLocked = string.Equals("true", val, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user