|
|
|
@ -96,7 +96,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("CameraImageUploadedFrom"), e.Argument.Device.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("CameraImageUploadedFrom"),
|
|
|
|
|
e.Argument.Device.Name),
|
|
|
|
|
Type = NotificationType.CameraImageUploaded.ToString()
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -105,7 +108,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("UserLockedOutWithName"), e.Argument.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("UserLockedOutWithName"),
|
|
|
|
|
e.Argument.Name),
|
|
|
|
|
Type = NotificationType.UserLockedOut.ToString(),
|
|
|
|
|
UserId = e.Argument.Id
|
|
|
|
|
});
|
|
|
|
@ -115,7 +121,11 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("SubtitleDownloadFailureFromForItem"), e.Provider, Notifications.Notifications.GetItemName(e.Item)),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("SubtitleDownloadFailureFromForItem"),
|
|
|
|
|
e.Provider,
|
|
|
|
|
Notifications.Notifications.GetItemName(e.Item)),
|
|
|
|
|
Type = "SubtitleDownloadFailure",
|
|
|
|
|
ItemId = e.Item.Id.ToString("N", CultureInfo.InvariantCulture),
|
|
|
|
|
ShortOverview = e.Exception.Message
|
|
|
|
@ -178,7 +188,12 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("UserStartedPlayingItemWithValues"), user.Name, GetItemName(item), e.DeviceName),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("UserStartedPlayingItemWithValues"),
|
|
|
|
|
user.Name,
|
|
|
|
|
GetItemName(item),
|
|
|
|
|
e.DeviceName),
|
|
|
|
|
Type = GetPlaybackNotificationType(item.MediaType),
|
|
|
|
|
UserId = user.Id
|
|
|
|
|
});
|
|
|
|
@ -193,7 +208,7 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
name = item.SeriesName + " - " + name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (item.Artists != null && item.Artists.Length > 0)
|
|
|
|
|
if (item.Artists != null && item.Artists.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
name = item.Artists[0] + " - " + name;
|
|
|
|
|
}
|
|
|
|
@ -238,21 +253,31 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(session.UserName))
|
|
|
|
|
{
|
|
|
|
|
name = string.Format(_localization.GetLocalizedString("DeviceOfflineWithName"), session.DeviceName);
|
|
|
|
|
name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("DeviceOfflineWithName"),
|
|
|
|
|
session.DeviceName);
|
|
|
|
|
|
|
|
|
|
// Causing too much spam for now
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
name = string.Format(_localization.GetLocalizedString("UserOfflineFromDevice"), session.UserName, session.DeviceName);
|
|
|
|
|
name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("UserOfflineFromDevice"),
|
|
|
|
|
session.UserName,
|
|
|
|
|
session.DeviceName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = name,
|
|
|
|
|
Type = "SessionEnded",
|
|
|
|
|
ShortOverview = string.Format(_localization.GetLocalizedString("LabelIpAddressValue"), session.RemoteEndPoint),
|
|
|
|
|
ShortOverview = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("LabelIpAddressValue"),
|
|
|
|
|
session.RemoteEndPoint),
|
|
|
|
|
UserId = session.UserId
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -263,9 +288,15 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("AuthenticationSucceededWithUserName"), user.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("AuthenticationSucceededWithUserName"),
|
|
|
|
|
user.Name),
|
|
|
|
|
Type = "AuthenticationSucceeded",
|
|
|
|
|
ShortOverview = string.Format(_localization.GetLocalizedString("LabelIpAddressValue"), e.Argument.SessionInfo.RemoteEndPoint),
|
|
|
|
|
ShortOverview = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("LabelIpAddressValue"),
|
|
|
|
|
e.Argument.SessionInfo.RemoteEndPoint),
|
|
|
|
|
UserId = user.Id
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -274,9 +305,15 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("FailedLoginAttemptWithUserName"), e.Argument.Username),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("FailedLoginAttemptWithUserName"),
|
|
|
|
|
e.Argument.Username),
|
|
|
|
|
Type = "AuthenticationFailed",
|
|
|
|
|
ShortOverview = string.Format(_localization.GetLocalizedString("LabelIpAddressValue"), e.Argument.RemoteEndPoint),
|
|
|
|
|
ShortOverview = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("LabelIpAddressValue"),
|
|
|
|
|
e.Argument.RemoteEndPoint),
|
|
|
|
|
Severity = LogLevel.Error
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -285,7 +322,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("UserPolicyUpdatedWithName"), e.Argument.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("UserPolicyUpdatedWithName"),
|
|
|
|
|
e.Argument.Name),
|
|
|
|
|
Type = "UserPolicyUpdated",
|
|
|
|
|
UserId = e.Argument.Id
|
|
|
|
|
});
|
|
|
|
@ -295,7 +335,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("UserDeletedWithName"), e.Argument.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("UserDeletedWithName"),
|
|
|
|
|
e.Argument.Name),
|
|
|
|
|
Type = "UserDeleted"
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -304,7 +347,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("UserPasswordChangedWithName"), e.Argument.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("UserPasswordChangedWithName"),
|
|
|
|
|
e.Argument.Name),
|
|
|
|
|
Type = "UserPasswordChanged",
|
|
|
|
|
UserId = e.Argument.Id
|
|
|
|
|
});
|
|
|
|
@ -314,7 +360,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("UserCreatedWithName"), e.Argument.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("UserCreatedWithName"),
|
|
|
|
|
e.Argument.Name),
|
|
|
|
|
Type = "UserCreated",
|
|
|
|
|
UserId = e.Argument.Id
|
|
|
|
|
});
|
|
|
|
@ -327,21 +376,31 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(session.UserName))
|
|
|
|
|
{
|
|
|
|
|
name = string.Format(_localization.GetLocalizedString("DeviceOnlineWithName"), session.DeviceName);
|
|
|
|
|
name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("DeviceOnlineWithName"),
|
|
|
|
|
session.DeviceName);
|
|
|
|
|
|
|
|
|
|
// Causing too much spam for now
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
name = string.Format(_localization.GetLocalizedString("UserOnlineFromDevice"), session.UserName, session.DeviceName);
|
|
|
|
|
name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("UserOnlineFromDevice"),
|
|
|
|
|
session.UserName,
|
|
|
|
|
session.DeviceName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = name,
|
|
|
|
|
Type = "SessionStarted",
|
|
|
|
|
ShortOverview = string.Format(_localization.GetLocalizedString("LabelIpAddressValue"), session.RemoteEndPoint),
|
|
|
|
|
ShortOverview = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("LabelIpAddressValue"),
|
|
|
|
|
session.RemoteEndPoint),
|
|
|
|
|
UserId = session.UserId
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -350,9 +409,15 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("PluginUpdatedWithName"), e.Argument.Item1.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("PluginUpdatedWithName"),
|
|
|
|
|
e.Argument.Item1.Name),
|
|
|
|
|
Type = NotificationType.PluginUpdateInstalled.ToString(),
|
|
|
|
|
ShortOverview = string.Format(_localization.GetLocalizedString("VersionNumber"), e.Argument.Item2.versionStr),
|
|
|
|
|
ShortOverview = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("VersionNumber"),
|
|
|
|
|
e.Argument.Item2.versionStr),
|
|
|
|
|
Overview = e.Argument.Item2.description
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -361,7 +426,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("PluginUninstalledWithName"), e.Argument.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("PluginUninstalledWithName"),
|
|
|
|
|
e.Argument.Name),
|
|
|
|
|
Type = NotificationType.PluginUninstalled.ToString()
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -370,9 +438,15 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
{
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("PluginInstalledWithName"), e.Argument.name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("PluginInstalledWithName"),
|
|
|
|
|
e.Argument.name),
|
|
|
|
|
Type = NotificationType.PluginInstalled.ToString(),
|
|
|
|
|
ShortOverview = string.Format(_localization.GetLocalizedString("VersionNumber"), e.Argument.versionStr)
|
|
|
|
|
ShortOverview = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("VersionNumber"),
|
|
|
|
|
e.Argument.versionStr)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -382,9 +456,15 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("NameInstallFailed"), installationInfo.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("NameInstallFailed"),
|
|
|
|
|
installationInfo.Name),
|
|
|
|
|
Type = NotificationType.InstallationFailed.ToString(),
|
|
|
|
|
ShortOverview = string.Format(_localization.GetLocalizedString("VersionNumber"), installationInfo.Version),
|
|
|
|
|
ShortOverview = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("VersionNumber"),
|
|
|
|
|
installationInfo.Version),
|
|
|
|
|
Overview = e.Exception.Message
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -401,7 +481,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var time = result.EndTimeUtc - result.StartTimeUtc;
|
|
|
|
|
var runningTime = string.Format(_localization.GetLocalizedString("LabelRunningTimeValue"), ToUserFriendlyString(time));
|
|
|
|
|
var runningTime = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("LabelRunningTimeValue"),
|
|
|
|
|
ToUserFriendlyString(time));
|
|
|
|
|
|
|
|
|
|
if (result.Status == TaskCompletionStatus.Failed)
|
|
|
|
|
{
|
|
|
|
@ -419,7 +502,10 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
|
|
|
|
|
CreateLogEntry(new ActivityLogEntry
|
|
|
|
|
{
|
|
|
|
|
Name = string.Format(_localization.GetLocalizedString("ScheduledTaskFailedWithName"), task.Name),
|
|
|
|
|
Name = string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
_localization.GetLocalizedString("ScheduledTaskFailedWithName"),
|
|
|
|
|
task.Name),
|
|
|
|
|
Type = NotificationType.TaskFailed.ToString(),
|
|
|
|
|
Overview = string.Join(Environment.NewLine, vals),
|
|
|
|
|
ShortOverview = runningTime,
|
|
|
|
@ -534,8 +620,11 @@ namespace Emby.Server.Implementations.Activity
|
|
|
|
|
/// <param name="description">The name of this item (singular form)</param>
|
|
|
|
|
private static string CreateValueString(int value, string description)
|
|
|
|
|
{
|
|
|
|
|
return string.Format("{0:#,##0} {1}",
|
|
|
|
|
value, value == 1 ? description : string.Format("{0}s", description));
|
|
|
|
|
return string.Format(
|
|
|
|
|
CultureInfo.InvariantCulture,
|
|
|
|
|
"{0:#,##0} {1}",
|
|
|
|
|
value,
|
|
|
|
|
value == 1 ? description : string.Format(CultureInfo.InvariantCulture, "{0}s", description));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|