mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	Migrate ActivityLogEntryPoint.OnSubtitleDownloadFailure to IEventConsumer
This commit is contained in:
		
							parent
							
								
									fdd73f1186
								
							
						
					
					
						commit
						ade40a4c42
					
				@ -8,7 +8,6 @@ using MediaBrowser.Controller.Authentication;
 | 
			
		||||
using MediaBrowser.Controller.Library;
 | 
			
		||||
using MediaBrowser.Controller.Plugins;
 | 
			
		||||
using MediaBrowser.Controller.Session;
 | 
			
		||||
using MediaBrowser.Controller.Subtitles;
 | 
			
		||||
using MediaBrowser.Model.Activity;
 | 
			
		||||
using MediaBrowser.Model.Events;
 | 
			
		||||
using MediaBrowser.Model.Globalization;
 | 
			
		||||
@ -27,7 +26,6 @@ namespace Emby.Server.Implementations.Activity
 | 
			
		||||
        private readonly ISessionManager _sessionManager;
 | 
			
		||||
        private readonly IActivityManager _activityManager;
 | 
			
		||||
        private readonly ILocalizationManager _localization;
 | 
			
		||||
        private readonly ISubtitleManager _subManager;
 | 
			
		||||
        private readonly IUserManager _userManager;
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
@ -37,21 +35,18 @@ namespace Emby.Server.Implementations.Activity
 | 
			
		||||
        /// <param name="activityManager">The activity manager.</param>
 | 
			
		||||
        /// <param name="localization">The localization manager.</param>
 | 
			
		||||
        /// <param name="installationManager">The installation manager.</param>
 | 
			
		||||
        /// <param name="subManager">The subtitle manager.</param>
 | 
			
		||||
        /// <param name="userManager">The user manager.</param>
 | 
			
		||||
        public ActivityLogEntryPoint(
 | 
			
		||||
            ISessionManager sessionManager,
 | 
			
		||||
            IActivityManager activityManager,
 | 
			
		||||
            ILocalizationManager localization,
 | 
			
		||||
            IInstallationManager installationManager,
 | 
			
		||||
            ISubtitleManager subManager,
 | 
			
		||||
            IUserManager userManager)
 | 
			
		||||
        {
 | 
			
		||||
            _sessionManager = sessionManager;
 | 
			
		||||
            _activityManager = activityManager;
 | 
			
		||||
            _localization = localization;
 | 
			
		||||
            _installationManager = installationManager;
 | 
			
		||||
            _subManager = subManager;
 | 
			
		||||
            _userManager = userManager;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -68,8 +63,6 @@ namespace Emby.Server.Implementations.Activity
 | 
			
		||||
            _sessionManager.AuthenticationSucceeded += OnAuthenticationSucceeded;
 | 
			
		||||
            _sessionManager.SessionEnded += OnSessionEnded;
 | 
			
		||||
 | 
			
		||||
            _subManager.SubtitleDownloadFailure += OnSubtitleDownloadFailure;
 | 
			
		||||
 | 
			
		||||
            _userManager.OnUserCreated += OnUserCreated;
 | 
			
		||||
            _userManager.OnUserPasswordChanged += OnUserPasswordChanged;
 | 
			
		||||
            _userManager.OnUserDeleted += OnUserDeleted;
 | 
			
		||||
@ -92,22 +85,6 @@ namespace Emby.Server.Implementations.Activity
 | 
			
		||||
            }).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private async void OnSubtitleDownloadFailure(object sender, SubtitleDownloadFailureEventArgs e)
 | 
			
		||||
        {
 | 
			
		||||
            await CreateLogEntry(new ActivityLog(
 | 
			
		||||
                string.Format(
 | 
			
		||||
                    CultureInfo.InvariantCulture,
 | 
			
		||||
                    _localization.GetLocalizedString("SubtitleDownloadFailureFromForItem"),
 | 
			
		||||
                    e.Provider,
 | 
			
		||||
                    Notifications.NotificationEntryPoint.GetItemName(e.Item)),
 | 
			
		||||
                "SubtitleDownloadFailure",
 | 
			
		||||
                Guid.Empty)
 | 
			
		||||
            {
 | 
			
		||||
                ItemId = e.Item.Id.ToString("N", CultureInfo.InvariantCulture),
 | 
			
		||||
                ShortOverview = e.Exception.Message
 | 
			
		||||
            }).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private async void OnSessionEnded(object sender, SessionEventArgs e)
 | 
			
		||||
        {
 | 
			
		||||
            var session = e.SessionInfo;
 | 
			
		||||
@ -314,8 +291,6 @@ namespace Emby.Server.Implementations.Activity
 | 
			
		||||
            _sessionManager.AuthenticationSucceeded -= OnAuthenticationSucceeded;
 | 
			
		||||
            _sessionManager.SessionEnded -= OnSessionEnded;
 | 
			
		||||
 | 
			
		||||
            _subManager.SubtitleDownloadFailure -= OnSubtitleDownloadFailure;
 | 
			
		||||
 | 
			
		||||
            _userManager.OnUserCreated -= OnUserCreated;
 | 
			
		||||
            _userManager.OnUserPasswordChanged -= OnUserPasswordChanged;
 | 
			
		||||
            _userManager.OnUserDeleted -= OnUserDeleted;
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,102 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Globalization;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Jellyfin.Data.Entities;
 | 
			
		||||
using MediaBrowser.Controller.Entities;
 | 
			
		||||
using MediaBrowser.Controller.Entities.Audio;
 | 
			
		||||
using MediaBrowser.Controller.Events;
 | 
			
		||||
using MediaBrowser.Controller.Subtitles;
 | 
			
		||||
using MediaBrowser.Model.Activity;
 | 
			
		||||
using MediaBrowser.Model.Globalization;
 | 
			
		||||
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
 | 
			
		||||
 | 
			
		||||
namespace Jellyfin.Server.Implementations.Events.Consumers.Library
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Creates an entry in the activity log whenever a subtitle download fails.
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public class SubtitleDownloadFailureLogger : IEventConsumer<SubtitleDownloadFailureEventArgs>
 | 
			
		||||
    {
 | 
			
		||||
        private readonly ILocalizationManager _localizationManager;
 | 
			
		||||
        private readonly IActivityManager _activityManager;
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Initializes a new instance of the <see cref="SubtitleDownloadFailureLogger"/> class.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="localizationManager">The localization manager.</param>
 | 
			
		||||
        /// <param name="activityManager">The activity manager.</param>
 | 
			
		||||
        public SubtitleDownloadFailureLogger(ILocalizationManager localizationManager, IActivityManager activityManager)
 | 
			
		||||
        {
 | 
			
		||||
            _localizationManager = localizationManager;
 | 
			
		||||
            _activityManager = activityManager;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <inheritdoc />
 | 
			
		||||
        public async Task OnEvent(SubtitleDownloadFailureEventArgs eventArgs)
 | 
			
		||||
        {
 | 
			
		||||
            await _activityManager.CreateAsync(new ActivityLog(
 | 
			
		||||
                string.Format(
 | 
			
		||||
                    CultureInfo.InvariantCulture,
 | 
			
		||||
                    _localizationManager.GetLocalizedString("SubtitleDownloadFailureFromForItem"),
 | 
			
		||||
                    eventArgs.Provider,
 | 
			
		||||
                    GetItemName(eventArgs.Item)),
 | 
			
		||||
                "SubtitleDownloadFailure",
 | 
			
		||||
                Guid.Empty)
 | 
			
		||||
            {
 | 
			
		||||
                ItemId = eventArgs.Item.Id.ToString("N", CultureInfo.InvariantCulture),
 | 
			
		||||
                ShortOverview = eventArgs.Exception.Message
 | 
			
		||||
            }).ConfigureAwait(false);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private static string GetItemName(BaseItem item)
 | 
			
		||||
        {
 | 
			
		||||
            var name = item.Name;
 | 
			
		||||
            if (item is Episode episode)
 | 
			
		||||
            {
 | 
			
		||||
                if (episode.IndexNumber.HasValue)
 | 
			
		||||
                {
 | 
			
		||||
                    name = string.Format(
 | 
			
		||||
                        CultureInfo.InvariantCulture,
 | 
			
		||||
                        "Ep{0} - {1}",
 | 
			
		||||
                        episode.IndexNumber.Value,
 | 
			
		||||
                        name);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (episode.ParentIndexNumber.HasValue)
 | 
			
		||||
                {
 | 
			
		||||
                    name = string.Format(
 | 
			
		||||
                        CultureInfo.InvariantCulture,
 | 
			
		||||
                        "S{0}, {1}",
 | 
			
		||||
                        episode.ParentIndexNumber.Value,
 | 
			
		||||
                        name);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (item is IHasSeries hasSeries)
 | 
			
		||||
            {
 | 
			
		||||
                name = hasSeries.SeriesName + " - " + name;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (item is IHasAlbumArtist hasAlbumArtist)
 | 
			
		||||
            {
 | 
			
		||||
                var artists = hasAlbumArtist.AlbumArtists;
 | 
			
		||||
 | 
			
		||||
                if (artists.Count > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    name = artists[0] + " - " + name;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            else if (item is IHasArtist hasArtist)
 | 
			
		||||
            {
 | 
			
		||||
                var artists = hasArtist.Artists;
 | 
			
		||||
 | 
			
		||||
                if (artists.Count > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    name = artists[0] + " - " + name;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return name;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user