mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-21 22:04:31 -04:00
New: Basic stats on your library. View at: /System/Stats
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Ninject;
|
||||
using NzbDrone.Core.Model;
|
||||
using NzbDrone.Core.Repository;
|
||||
using PetaPoco;
|
||||
|
||||
namespace NzbDrone.Core.Providers
|
||||
{
|
||||
public class StatsProvider
|
||||
{
|
||||
private readonly IDatabase _database;
|
||||
|
||||
[Inject]
|
||||
public StatsProvider(IDatabase database)
|
||||
{
|
||||
_database = database;
|
||||
}
|
||||
|
||||
public StatsProvider()
|
||||
{
|
||||
}
|
||||
|
||||
public virtual StatsModel GetStats()
|
||||
{
|
||||
var series = _database.Fetch<Series>();
|
||||
var episodes = _database.Fetch<Episode>();
|
||||
var history = _database.Fetch<History>("WHERE Date <= @0", DateTime.Today.AddDays(-30));
|
||||
|
||||
var stats = new StatsModel();
|
||||
stats.SeriesTotal = series.Count;
|
||||
stats.SeriesContinuing = series.Count(s => s.Status == "Continuing");
|
||||
stats.SeriesEnded = series.Count(s => s.Status == "Ended");
|
||||
stats.EpisodesTotal = episodes.Count;
|
||||
stats.EpisodesOnDisk = episodes.Count(e => e.EpisodeFileId > 0);
|
||||
stats.EpisodesMissing = episodes.Count(e => e.Ignored == false && e.EpisodeFileId == 0);
|
||||
stats.DownloadedLastMonth = history.Count;
|
||||
stats.DownloadLastWeek = history.Count(h => h.Date <= DateTime.Today.AddDays(7));
|
||||
|
||||
return stats;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user