feat(api): expose Discord statistics on /private/meta
This commit is contained in:
parent
8909330db2
commit
8a124c67ae
@ -9,7 +9,7 @@ namespace PluralKit.API;
|
||||
|
||||
public static class APIJsonExt
|
||||
{
|
||||
public static JObject ToJson(this ModelRepository.Counts counts)
|
||||
public static JObject ToJson(this ModelRepository.Counts counts, int guildCount, int channelCount)
|
||||
{
|
||||
var o = new JObject();
|
||||
|
||||
@ -19,6 +19,10 @@ public static class APIJsonExt
|
||||
o.Add("switch_count", counts.SwitchCount);
|
||||
o.Add("message_count", counts.MessageCount);
|
||||
|
||||
// Discord statistics
|
||||
o.Add("guild_count", guildCount);
|
||||
o.Add("channel_count", channelCount);
|
||||
|
||||
return o;
|
||||
}
|
||||
}
|
||||
|
@ -30,11 +30,17 @@ public class PrivateController: PKControllerBase
|
||||
var redisInfo = await db.HashGetAllAsync("pluralkit:shardstatus");
|
||||
var shards = redisInfo.Select(x => Proto.Unmarshal<ShardState>(x.Value)).OrderBy(x => x.ShardId);
|
||||
|
||||
var redisClusterInfo = await db.HashGetAllAsync("pluralkit:cluster_stats");
|
||||
var clusterInfo = redisClusterInfo.Select(x => JsonConvert.DeserializeObject<ClusterMetricInfo>(x.Value));
|
||||
|
||||
var guildCount = clusterInfo.Sum(x => x.GuildCount);
|
||||
var channelCount = clusterInfo.Sum(x => x.ChannelCount);
|
||||
|
||||
var stats = await _repo.GetStats();
|
||||
|
||||
var o = new JObject();
|
||||
o.Add("shards", shards.ToJson());
|
||||
o.Add("stats", stats.ToJson());
|
||||
o.Add("stats", stats.ToJson(guildCount, channelCount));
|
||||
o.Add("version", BuildInfoService.FullVersion);
|
||||
|
||||
return Ok(o);
|
||||
|
Loading…
Reference in New Issue
Block a user