Expand integration coverage and fix settings UI
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
using System.Text.Json.Nodes;
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Jellyfin.Plugin.Multilang.Services;
|
||||
@@ -6,20 +9,27 @@ namespace Jellyfin.Plugin.Multilang.Services;
|
||||
public sealed class ItemsProxyPrecacheService
|
||||
{
|
||||
private static readonly TimeSpan IdleThreshold = TimeSpan.FromMinutes(30);
|
||||
private readonly IServerApplicationHost _applicationHost;
|
||||
private readonly IConfigurationManager _configurationManager;
|
||||
private readonly IHttpClientFactory _httpClientFactory;
|
||||
private readonly ILogger<ItemsProxyPrecacheService> _logger;
|
||||
private readonly object _lock = new();
|
||||
private readonly Dictionary<string, DateTimeOffset> _lastSeen = new(StringComparer.Ordinal);
|
||||
private readonly HashSet<string> _pendingUsers = new(StringComparer.Ordinal);
|
||||
|
||||
public ItemsProxyPrecacheService(IHttpClientFactory httpClientFactory, ILogger<ItemsProxyPrecacheService> logger)
|
||||
public ItemsProxyPrecacheService(
|
||||
IServerApplicationHost applicationHost,
|
||||
IConfigurationManager configurationManager,
|
||||
IHttpClientFactory httpClientFactory,
|
||||
ILogger<ItemsProxyPrecacheService> logger)
|
||||
{
|
||||
_applicationHost = applicationHost;
|
||||
_configurationManager = configurationManager;
|
||||
_httpClientFactory = httpClientFactory;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public void ObserveUserActivity(
|
||||
Uri baseUri,
|
||||
string userId,
|
||||
string token,
|
||||
string clientLocale,
|
||||
@@ -38,11 +48,10 @@ public sealed class ItemsProxyPrecacheService
|
||||
return;
|
||||
}
|
||||
|
||||
_ = PrecacheAsync(baseUri, userId, token, clientLocale, precacheMovieLibraries, precacheTvShowLibraries);
|
||||
_ = PrecacheAsync(userId, token, clientLocale, precacheMovieLibraries, precacheTvShowLibraries);
|
||||
}
|
||||
|
||||
private async Task PrecacheAsync(
|
||||
Uri baseUri,
|
||||
string userId,
|
||||
string token,
|
||||
string clientLocale,
|
||||
@@ -51,6 +60,8 @@ public sealed class ItemsProxyPrecacheService
|
||||
{
|
||||
try
|
||||
{
|
||||
var port = _configurationManager.GetNetworkConfiguration().InternalHttpPort;
|
||||
var baseUri = new Uri(_applicationHost.GetLocalApiUrl("127.0.0.1", "http", port).TrimEnd('/') + "/");
|
||||
var views = await GetJsonAsync(new Uri(baseUri, $"Users/{userId}/Views"), token).ConfigureAwait(false);
|
||||
var items = views["Items"]?.AsArray() ?? [];
|
||||
var targets = items
|
||||
|
||||
Reference in New Issue
Block a user