|
|
|
@ -10,6 +10,7 @@ using System.Collections.Concurrent;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using MediaBrowser.Controller.Configuration;
|
|
|
|
|
|
|
|
|
|
namespace MediaBrowser.Server.Implementations.EntryPoints
|
|
|
|
|
{
|
|
|
|
@ -23,18 +24,18 @@ namespace MediaBrowser.Server.Implementations.EntryPoints
|
|
|
|
|
private readonly ILogger _logger;
|
|
|
|
|
private readonly ISessionManager _sessionManager;
|
|
|
|
|
private readonly IUserManager _userManager;
|
|
|
|
|
|
|
|
|
|
private readonly TimeSpan _frequency = TimeSpan.FromHours(24);
|
|
|
|
|
private readonly IServerConfigurationManager _config;
|
|
|
|
|
|
|
|
|
|
private readonly ConcurrentDictionary<Guid, ClientInfo> _apps = new ConcurrentDictionary<Guid, ClientInfo>();
|
|
|
|
|
|
|
|
|
|
public UsageEntryPoint(ILogger logger, IApplicationHost applicationHost, IHttpClient httpClient, ISessionManager sessionManager, IUserManager userManager)
|
|
|
|
|
public UsageEntryPoint(ILogger logger, IApplicationHost applicationHost, IHttpClient httpClient, ISessionManager sessionManager, IUserManager userManager, IServerConfigurationManager config)
|
|
|
|
|
{
|
|
|
|
|
_logger = logger;
|
|
|
|
|
_applicationHost = applicationHost;
|
|
|
|
|
_httpClient = httpClient;
|
|
|
|
|
_sessionManager = sessionManager;
|
|
|
|
|
_userManager = userManager;
|
|
|
|
|
_config = config;
|
|
|
|
|
|
|
|
|
|
_sessionManager.SessionStarted += _sessionManager_SessionStarted;
|
|
|
|
|
}
|
|
|
|
@ -64,6 +65,11 @@ namespace MediaBrowser.Server.Implementations.EntryPoints
|
|
|
|
|
|
|
|
|
|
private async void ReportNewSession(ClientInfo client)
|
|
|
|
|
{
|
|
|
|
|
if (!_config.Configuration.EnableAnonymousUsageReporting)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await new UsageReporter(_applicationHost, _httpClient, _userManager, _logger)
|
|
|
|
@ -106,6 +112,11 @@ namespace MediaBrowser.Server.Implementations.EntryPoints
|
|
|
|
|
/// </summary>
|
|
|
|
|
private async void OnTimerFired()
|
|
|
|
|
{
|
|
|
|
|
if (!_config.Configuration.EnableAnonymousUsageReporting)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await new UsageReporter(_applicationHost, _httpClient, _userManager, _logger)
|
|
|
|
|