New Feature Stats (#1179)

* When searching, search against normalized names.

* Added new stat fields
This commit is contained in:
Joseph Milazzo 2022-03-27 08:16:43 -05:00 committed by GitHub
parent fbb8934eef
commit 0622d8a874
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 80 additions and 16 deletions

View file

@ -5,6 +5,7 @@ using System.Runtime.InteropServices;
using System.Threading.Tasks;
using API.Data;
using API.DTOs.Stats;
using API.DTOs.Theme;
using API.Entities.Enums;
using Flurl.Http;
using Kavita.Common.EnvironmentInfo;
@ -100,6 +101,12 @@ public class StatsService : IStatsService
{
var installId = await _unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.InstallId);
var installVersion = await _unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.InstallVersion);
var firstAdminUser = (await _unitOfWork.UserRepository.GetAdminUsersAsync()).First();
var firstAdminUserPref = (await _unitOfWork.UserRepository.GetPreferencesAsync(firstAdminUser.UserName));
var activeTheme = firstAdminUserPref.Theme ?? Seed.DefaultThemes.First(t => t.IsDefault);
var serverInfo = new ServerInfoDto
{
InstallId = installId.Value,
@ -109,7 +116,14 @@ public class StatsService : IStatsService
IsDocker = new OsInfo(Array.Empty<IOsVersionAdapter>()).IsDocker,
NumOfCores = Math.Max(Environment.ProcessorCount, 1),
HasBookmarks = (await _unitOfWork.UserRepository.GetAllBookmarksAsync()).Any(),
NumberOfLibraries = (await _unitOfWork.LibraryRepository.GetLibrariesAsync()).Count()
NumberOfLibraries = (await _unitOfWork.LibraryRepository.GetLibrariesAsync()).Count(),
ActiveSiteTheme = activeTheme.Name,
NumberOfCollections = (await _unitOfWork.CollectionTagRepository.GetAllTagsAsync()).Count(),
NumberOfReadingLists = await _unitOfWork.ReadingListRepository.Count(),
OPDSEnabled = (await _unitOfWork.SettingsRepository.GetSettingsDtoAsync()).EnableOpds,
NumberOfUsers = (await _unitOfWork.UserRepository.GetAllUsers()).Count(),
TotalFiles = await _unitOfWork.LibraryRepository.GetTotalFiles(),
MangaReaderMode = firstAdminUserPref.ReaderMode
};
return serverInfo;